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

NSTableView row - changing colors when highlighting

我有一个基于视图的 NSTableView,我通过重写 NSTableRowView 子类中的 drawSelectionInRect 为其设置自定义突出显示颜色。

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

一切都很好,除了 tableViewSelectionDidChange 直到 我松开鼠标按钮后才会被调用。当我使用键盘更改选择时 tableViewSelectionDidChange 立即触发。

我的两个主要问题:

我查看了 Apple 应用程序如何处理此问题。我查看了 Mail.app 并单击了消息列表中的一行(它包含附件回形针图标)。邮件通过在鼠标松开之前不更改行颜色来处理它。有什么办法可以做到吗?

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