2012-02-18 105 views
0

我試圖創建一個帶圓角的NSTableView(很像iOS的Grouped風格的表視圖)。 但是,這證明是非常困難的。NSTableView像UITableView組圓形角落

我試着使用CALayers

// ... 
self.wantsLayer = YES; 
self.layer.masksToBounds = YES; 
self.layer.cornerRadius = 10.0; 
// ... 

該協會致力於NSView子類,但不NSTableViewNSScrollView

我也嘗試覆蓋drawRect:,並使用bezierPaths。

NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect: self.bounds]; 
[rectPath appendBezierPathWithRoundedRect: self.bounds xRadius: 10 yRadius: 10]; 
[rectPath addClip]; 
[super drawRect: rectPath.bounds]; 

我沒有測試過NSView s此方法,但它不能正常工作,用於開發NSTableView秒。

我以前在StackOverflow上看到過一些「重複」的問題,但他們還沒有能夠提供令人滿意的解決方案。

Rounded corners on NSTableView有1個「正確的」答案,看起來很簡單,因爲提問者改變了他的目標。這個問題給我提示嘗試NSBezierPath s,但正如我所說,我似乎無法得到該方法的工作。

NSTableView rounded corners建議對一個NSScrollView進行子類化,但對CALayers同樣沒有響應。

任何建議將不勝感激。我希望得到一個明確的答案,不僅僅是爲了我自己,而是爲了後代。

回答

2

我也面臨同樣的製作圓角的問題,但沒有得到答案。

最後我做了另一種方式,我已經使桌子透明的背景,並添加4像素(我想要顯示)圓角的.png文件的圖像後面的表視圖。

以這種方式,我已經顯示了與圓角的表。 希望這個解決方案適合你。

+0

一個很好的建議。任何導致如何以編程方式做到這一點? – 2012-02-21 03:59:01

+0

我一直在研究一個即將開源的庫來實現這一點。我會用我的結果更新我的問題。感謝您的正確方向! – 2012-02-22 23:40:53

+0

@pcperini你有沒有得到一個解決方案?我需要在我的Mac應用程序中的相同的東西 – 2012-08-16 00:05:44