选择封装的 NSTableView 单元格时收到通知?

Getting notified when an encapsulating NSTableView cell is selected?

当常用 NSTableView 的 row/cell 被选中时,它的背景变为蓝色,任何标准的 NSTextfields 文本颜色变为白色。

是否有 public API 让您在选择封装行视图或单元格视图时收到消息?基本上,我想制作一个自定义视图,在选择 row/cell 时更改颜色。

您可以使用 NSTableViewDelegate 。您可以使用 tableViewSelectionDidChange 为此。请参考这个 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/#//apple_ref/occ/intfm/NSTableViewDelegate/tableViewSelectionDidChange: 。

Table 单元格未被选中,table 行被选中。 NSTableRowView 有一个 selected 属性.

我认为无论行是否被选中,当行发生变化时,你应该只依赖你的视图被要求绘制(即被标记为需要显示)。然后它可以查询其封闭行视图的属性来决定如何它应该绘制。

也就是说,您不一定要使用行的 selected 属性 来决定如何绘制。相反,您通常应该使用行的 interiorBackgroundStyle。或者,如果您使用 NSTableCellView 作为您的单元格视图,请检查它的 backgroundStyle。在许多情况下,您不必检查;单元格视图会将 backgroundStyle 的设置转发给它的子视图,如果它们支持的话。