NSTableView行 - 突出显示时更改颜色

时间:2016-01-28 01:19:41

标签: objective-c macos cocoa nstableview

我有一个基于视图的NSTableView,我通过覆盖NSTableRowView子类中的drawSelectionInRect来设置自定义高亮颜色。

最初,当我点击它时,我注意到文本自动从深色变为浅色(尽管最近它只是间歇性地执行此操作)。我在这个表行视图中也有图形,当突出显示行时对比度很差,所以我在表视图的委托中实现了tableViewSelectionDidChange

它发挥了很好的作用,除了tableViewSelectionDidChange之后我没有被调用我释放鼠标按钮。当我使用键盘更改选择tableViewSelectionDidChange时会立即触发。

我的两个主要问题是:

  • 我可以立即触发tableViewSelectionDidChange而不是使用mouseUp吗?
  • 当行被选中时,我能做些什么来确保行视图中的文本可靠地变为白色?

我查看Apple应用程序如何处理这个问题。我查看了Mail.app并单击了消息列表中的一行(它包含附件回形针图标)。邮件通过不更改行颜色来处理它,直到鼠标向上。我有办法做到吗?

1 个答案:

答案 0 :(得分:1)

tableViewSelectionIsChanging:委托方法似乎非常适合您的目的,不是吗?