2016-01-28 37 views
2

我有一個基於視圖的NSTableView,我通過覆蓋NSTableRowView子類中的drawSelectionInRect來設置自定義突出顯示顏色。NSTableView行 - 突出顯示時更改顏色

最初,我注意到當我點擊它時,文本會自動從深色變成淺色(儘管最近它只是間歇性地)。我在這個表格行視圖中也有圖形,當行被突出顯示時,對比度較差,所以我在表格視圖的代表中實現了tableViewSelectionDidChange

它工作的很好,除了tableViewSelectionDidChange直到之後纔會調用我釋放鼠標按鈕。當我用鍵盤改變選擇tableViewSelectionDidChange立即着火。

我的兩個主要的問題在這裏:

  • 我可以tableViewSelectionDidChange火立即,而不是在mouseUp事件?
  • 有什麼我可以做的,以確保我的行視圖中的文本可靠地更改爲白色時,該行的選擇?

我查看了蘋果應用程序如何處理這個問題。我查看了Mail.app,並在消息列表中單擊了一行(它包含附件回形針圖標)。郵件通過不改變行顏色來處理它,直到鼠標移動。有沒有辦法可以做到這一點?

+1

有一個'tableViewSelectionIsChanging:'委託方法,看起來很適合你的目的,不是嗎?如果不是,爲什麼不呢? – bhaller

+0

這正是我所尋找的;我無法相信我沒有在文檔中注意到它。謝謝! – Aaron

+0

好吧,我把它作爲答案,然後,得到它的功勞。 : - >我沒想到這會很容易! - > – bhaller

回答

1

有一個tableViewSelectionIsChanging:委託方法,似乎是完全適合您的目的,不是?

相關問題