objective-c - 如何设置 NSTableCellView 的背景颜色?

标签 objective-c cocoa nstableview nstablecellview

我在我的 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/

相关文章:

iphone - OCMock 返回值

iphone - 为 UIImageView 的 CABasicAnimation 强制顺时针/逆时针旋转

objective-c - 我应该保留 NSCalendar 对象以供持久使用吗?

objective-c - NSTableView:以编程方式添加一行会导致选择具有相同值的许多行?

cocoa - NSTableView 中的自定义单元格

ios - heightForRow 不等于 UITableView 中的单元格高度?

ios - 当单元格不可见时,如何访问和迭代 UITableView 中的 contentView.subviews?

xcode - 如何设置 NSSegmentedControl 的外观以匹配 Xcode 的外观?

objective-c - 将 NSButton 设置为蓝色(默认)

cocoa - 如何实现 'NSTableview Delegate'方法?