2012-02-15 22 views
3

我有一个基于视图的NSTableView,它使用自定义NSTableRowView实例为正常和选定行绘制自定义单元格背景。带有自定义行背景的NSTableView:防止标签在选择上变成白色

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

但是,这不适用于我的自定义背景/行选择。白色文字不再可见。有没有办法阻止NSTextField链接它的颜色与选择(最好没有继承,因为我有与NSButton相同的问题)?

这里是在中间选定行的截图(白色标签是很难看到):

selected row in the middle

回答

4

最好的解决办法是继承NSTableCellView并重写setBackgroundStyle:方法。

这在@ Seth对这个问题的回答中有更详细的描述:NSTextField in NSTableCellView

+0

我有一个NSButton相同的问题。它看起来像这样我必须有一个参考视图中的每个标签(有4个标签+一个按钮)。这真的是要走的路吗? – Mark 2012-02-15 13:40:22

+0

我不明白为什么这个答案被接受。 'willDisplayCell'将不会被调用基于视图的表格视图。我不明白这是如何解决问题的。 – cocoafan 2012-07-22 13:00:22

+0

@Monolo非常感谢你!它做了窍门并解决了我的问题。 – cocoafan 2012-07-23 17:29:42