2012-05-15 44 views
3

我創建基於視圖的表視圖,並且在創建自定義組行時遇到一些麻煩。我想在我的組行中添加文本,並且Apple提供的默認行爲非常好,但我需要更改實際行的顏色和外觀。我已經分類NSTableRowView,它的工作原理,但不幸的是不是很好。特別是當它開始浮動時,我還沒有想出如何更改視圖的alpha而不會使文本alpha發生變化。nstableview自定義組行

回答

4

這其實很容易。創建NSTableRowView的新子類並覆蓋方法drawRect :. 最好總是調用[super drawRect:dirtyRect];在開始時。 然後你有屬性self.isGroupRow。如果是,那麼只需繪製自定義組行。

您可以使用tableView:rowViewForRow:方法在Table View委託中加載自定義行。 只需返回它的一個實例就行了

+0

基本上是我最終做了什麼,除了我認爲drawBackground是我使用的方法。謝謝回覆! – rick

0

如果我正確理解你的問題,這個解決方案應該爲你工作:

Draw a custom NSTableRowView depending on if next row is group row

+0

如果這隻會讓你的一部分,也許你可以跟進更具體的問題。 – paulmelnikow

+0

感謝您的幫助。在那個例子中,他通過僅使用一個NSTextField來自動提供淺灰色和浮動屬性(如果需要),從而形成一個組。在我的情況下,我需要將組行更改爲較深的顏色,並保持浮動屬性。我所做的是使用NSTableRowView的子類來爲組行創建自定義繪圖,但我無法使其浮動。但現在我想我應該只是繼承NSTextFieldCell而不是?所以基本上我爲子組行劃分了什麼樣的自定義繪圖,以及使它浮動的正確方法是什麼? – rick

+0

什麼是浮動? – paulmelnikow