2009-12-09 118 views
0

我有一個NSTableView,其中一些單元格的啓用值是通過綁定設置的。我希望能夠根據單元格是否啓用來更改單元格的顏色。以前我已經通過NSTAbleView委託方法tableView完成了這個工作:willDisplayCell:forTableColumn:row:直到現在工作正常。我不得不關閉表格委託,所以我需要找到另一種方式來做到這一點。我懷疑這是一個明顯的問題,但我如何訪問表中的每個單元?我可以得到表格中的行數和列數,並且我可以循環它們,我只是不確定調用哪個方法來獲取第i列第j行中的單元格。訪問NSTableView中的特定單元格

+0

爲什麼不使用'NSTableViewDelegate'? – Alex

回答

0

假設您不想爲整列着色,最簡單的方法是tableView:willDisplayCell:forTableColumn:row:,因爲每列只有一個單元格(每個行使用同一個單元格作爲該列)。

你爲什麼擺脫你的代表?

1

一般來說,不應該通過行和列循環。你的代碼應該能夠做正確的事情,給出任何行或列。

一種方式來做到這一點是寫自己的電池類,並實現相應的圖紙,並強調方法,你會在的NSCell文檔中找到。你會實現 – drawWithFrame:inView:,可能-highlight:withFrame:inView:

另一種方式是繼承NSTableView,並覆蓋-preparedCellAtColumn:row:做你想要的任何單元格的操縱它繪製之前。

儘管如此,最簡單的方法就是像以前一樣使用委託方法。你爲什麼不想這樣做?