我在我的 Nib 中创建了一个 NSTableCellView,它的 textField 占据了整个空间,它非常适合显示文本和跟踪列的大小。
现在我希望能够在特定情况下(即并非所有单元格)为其设置纯色背景色。我该怎么做?
我认为这就像 this question ,除了那里的解决方案对我没有任何作用,而且我也无法想出任何接近它的有效解决方案。
我尝试制作我的 -tableView:viewForTableColumn:row:
方法...
- 设置cellview.layer.backgroundColor
- 设置 cellview.wantsLayer=YES(并确认存在图层)
- 设置 cellview.layer.opaque=YES 和 cellview.layer.opacity=1.0
- 设置cellview.textField.backgroundColor
- 设置 cellview.textField.drawsBackground=YES
- 在 Nib 中,对于表格单元格 View 的文本字段,选中“绘制背景”,然后设置背景弹出窗口(这对于所有表格单元格都是永久的,而不仅仅是我想要的 -tableView:viewForTableColumn:row :,但如果这有效,它将向我证明至少某些东西能够绘制背景)
由于我的文本占据了整个单元格 View ,因此能够将其设置在文本字段或整个单元格 View 上就可以了。
这似乎应该是某个地方的简单设置,但没有任何作用。我是否需要继承 NSTableCellView 才能获得背景颜色?
最佳答案
我建议创建 NSTableCellView 的子类。它有助于创建可重用的组件(您甚至可以添加渐变以使其看起来不同)并分离职责。 您可以使用这个简单的代码并更改 NSTableCellView 中的类。
- (void)drawRect:(NSRect)dirtyRect
{
NSRect bounds = [self bounds];
[[NSColor redColor] set];
NSRectFill(bounds);
}
关于objective-c - 如何设置 NSTableCellView 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22648584/