NSTableview 中选定行的标签颜色

Posted

技术标签:

【中文标题】NSTableview 中选定行的标签颜色【英文标题】:label color for selected row in NSTableview 【发布时间】:2012-07-24 04:01:32 【问题描述】:

我在基于视图的NSTableView 中对NSTableRowView 进行了子类化,以将选择颜色更改为浅蓝色而不是默认颜色。

不幸的是,当我选择行时,我的自定义单元格内的标签和文本字段的颜色变为白色,并且不可读。

如何防止文本在选择时改变颜色?

找到的解决方案:

我所要做的就是在我的自定义NSTableCellView 中实现-setBackgroundStyle:,然后在我想要隐藏的所有控件的NSCell 上调用setBackgroundStyle:NSBackgroundStyleLight

【问题讨论】:

【参考方案1】:

您需要make a custom NSCell。

【讨论】:

感谢您的链接。尽管我不得不承认我并不完全了解如何将该方法应用于我的基于视图的表格视图,但它似乎朝着正确的方向发展。我已经在使用 NSTableCellView 的自定义子类了。【参考方案2】:

好的,我想通了。

我所要做的就是在我的自定义 NSTableCellView 中实现 -setBackgroundStyle: 并在我想在选择时保持黑暗的所有控件的 NSCell 上调用 setBackgroundStyle:NSBackgroundStyleLight。

【讨论】:

很高兴看到您想通了——您应该编辑原始问题以显示您找到的解决方案,以便下一个遇到此问题的人可以立即找到答案!【参考方案3】:

你是如何改变选择颜色的?这听起来可能是由于您在现有图层之上添加子视图或子图层(可能是 cell.selectedBackgroundView?)引起的。如果您有任何 insertSublayer 或 subView 调用,请确保您在 Index:0 处执行它们。

【讨论】:

我继承了 NSTableRowView 并覆盖了 drawSelectionInRect:。我不使用图层

以上是关于NSTableview 中选定行的标签颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 UIPickerView 中选定行的颜色

更改NSTableView备用行颜色

Cocoa osx NSTableview 改变行高亮颜色

在 UIPickerView 中更改选定行的颜色,滚动时也是如此

如何在swift 3的表格视图中仅更改选定行和未选定行的字体颜色和大小?

如何在 Eclipse 的代码辅助弹出窗口中更改当前选定行的颜色?