NSTableView 行 - 突出显示时更改颜色
NSTableView row - changing colors when highlighting
我有一个基于视图的 NSTableView,我通过重写 NSTableRowView 子类中的 drawSelectionInRect
为其设置自定义突出显示颜色。
最初,我注意到当我单击它时,文本会自动从深色变为浅色(尽管最近它只是间歇性地这样做)。我在这个 table 行视图中也有图形,当该行突出显示时对比度很差,所以我在我的 table 视图的委托中实现了 tableViewSelectionDidChange
。
一切都很好,除了 tableViewSelectionDidChange
直到 在 我松开鼠标按钮后才会被调用。当我使用键盘更改选择时 tableViewSelectionDidChange
立即触发。
我的两个主要问题:
- 我可以让
tableViewSelectionDidChange
立即触发而不是在 mouseUp 上触发吗?
- 我可以做些什么来确保在选中行时我的行视图中的文本可靠地变为白色?
我查看了 Apple 应用程序如何处理此问题。我查看了 Mail.app 并单击了消息列表中的一行(它包含附件回形针图标)。邮件通过在鼠标松开之前不更改行颜色来处理它。有什么办法可以做到吗?
有一个 tableViewSelectionIsChanging:
委托方法似乎非常适合您的目的,不是吗?
我有一个基于视图的 NSTableView,我通过重写 NSTableRowView 子类中的 drawSelectionInRect
为其设置自定义突出显示颜色。
最初,我注意到当我单击它时,文本会自动从深色变为浅色(尽管最近它只是间歇性地这样做)。我在这个 table 行视图中也有图形,当该行突出显示时对比度很差,所以我在我的 table 视图的委托中实现了 tableViewSelectionDidChange
。
一切都很好,除了 tableViewSelectionDidChange
直到 在 我松开鼠标按钮后才会被调用。当我使用键盘更改选择时 tableViewSelectionDidChange
立即触发。
我的两个主要问题:
- 我可以让
tableViewSelectionDidChange
立即触发而不是在 mouseUp 上触发吗? - 我可以做些什么来确保在选中行时我的行视图中的文本可靠地变为白色?
我查看了 Apple 应用程序如何处理此问题。我查看了 Mail.app 并单击了消息列表中的一行(它包含附件回形针图标)。邮件通过在鼠标松开之前不更改行颜色来处理它。有什么办法可以做到吗?
有一个 tableViewSelectionIsChanging:
委托方法似乎非常适合您的目的,不是吗?