具有自定义行背景的NSTableView:防止标签在选择时变为白色

时间:2012-02-15 10:58:27

标签: cocoa custom-controls nstableview

我有一个基于视图的NSTableView,它使用自定义NSTableRowView个实例为普通行和所选行绘制自定义单元格背景。

我的问题是,当选择一行时,表格行内的标签会变为白色。我假设文本字段的单元格意识到它被选中并反转了文本颜色。

但是,这对我的自定义背景/行选择不起作用。白色文字不再可见。有没有办法阻止NSTextField使用选择链接其颜色(最好没有子类化,因为我对NSButton有同样的问题)?

以下是中间所选行的屏幕截图(白色标签很难看到):

selected row in the middle

1 个答案:

答案 0 :(得分:4)

最佳解决方案是继承NSTableCellView并覆盖setBackgroundStyle:方法。

@ Seth对此问题的回答更详细地描述了这一点:NSTextField in NSTableCellView