gpt4 book ai didi

cocoa - 如何在基于 View 的 NSTableView 中禁用选择中的白色文本颜色?

转载 作者:行者123 更新时间:2023-12-03 16:04:40 25 4
gpt4 key购买 nike

我正在使用基于 View 的表格 View ,并且不希望它在选择时用白色文本颜色绘制 NSTextFields。我无法找到可行的解决方案。因此,非常感谢任何帮助。

这是我的问题:

enter image description here

我希望“选择是白色”文本也以默认文本颜色绘制。

到目前为止我发现

  • tableView:viewForTableColumn:item: 中设置属性并没有真正的帮助
  • NSTextField 颜色设置为自定义颜色(与控件默认颜色不同),将阻止以白色绘制,但仍然会丢失字体样式(粗体、斜体等)。<
  • NSTableViewselectionHighlightStyle 属性设置为 NSTableViewSelectionHighlightStyleNone 可以解决问题,但不会重绘 NSTableRowView。而且选择的样式也不是我想要的。我希望第一次单击选择该行,第二次单击编辑文本字段。当您使用 NSTableViewSelectionHighlightStyleNone 时,您的第一次点击将开始编辑文本字段。
  • 如果 NSTextField 有边框,文本颜色不会改变。但我不想要带边框的文本字段(如屏幕截图所示。文本字段是可编辑的)

我无法弄清楚文本字段“如何”获得白色。我已经重写了 setTextColor: 并意识到当选择更改时它永远不会被调用。所以我猜想 NSAttributedString 是在 NSTableView 绘图/选择例程内部的某个地方构建的。

非常感谢任何帮助。

最佳答案

我找到了答案。我必须子类化 NSTableCellView 并重写 setBackgroundStyle: 。仅此而已!

- (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
[super setBackgroundStyle: NSBackgroundStyleLight];
}

关于cocoa - 如何在基于 View 的 NSTableView 中禁用选择中的白色文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com