gpt4 book ai didi

macos - NSTableCellView 中的 NSTextField

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

我有一个基于 View 的 NSTableView 和一个自定义 NSTableCellView。这个自定义的 NSTableCellView 有几个标签(NSTextField)。 NSTableCellView 的整个 UI 都是用 IB 构建的。

NSTableCellView可以处于正常状态和选中状态。在正常状态下,所有文本标签应为黑色,在选定状态下,它们应为白色。

我该如何处理这个问题?

最佳答案

重写 NSTableCellView 上的 setBackgroundStyle: 来了解背景何时发生变化,这会影响您应该在单元格中使用的文本颜色。

例如:

- (void)setBackgroundStyle:(NSBackgroundStyle)style
{
[super setBackgroundStyle:style];

// If the cell's text color is black, this sets it to white
[((NSCell *)self.descriptionField.cell) setBackgroundStyle:style];

// Otherwise you need to change the color manually
switch (style) {
case NSBackgroundStyleLight:
[self.descriptionField setTextColor:[NSColor colorWithCalibratedWhite:0.4 alpha:1.0]];
break;

case NSBackgroundStyleDark:
default:
[self.descriptionField setTextColor:[NSColor colorWithCalibratedWhite:1.0 alpha:1.0]];
break;
}
}

在源列表表格 View 中,单元格 View 的背景样式设置为“浅色”,其文本字段的背景样式也是如此,但是文本字段还在其文本下方绘制阴影,并且尚未找到确切的控制/确定应该它的原因发生。

关于macos - NSTableCellView 中的 NSTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149138/

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