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

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

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

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

找到的解决方案:

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

【问题讨论】:

    标签: cocoa nstableview nstableviewcell


    【解决方案1】:

    您需要make a custom NSCell

    【讨论】:

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

    好的,我想通了。

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

    【讨论】:

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

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

    【讨论】:

    • 我继承了 NSTableRowView 并覆盖了 drawSelectionInRect:。我不使用图层
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2015-07-03
    相关资源
    最近更新 更多