如何在不隐藏列标题的情况下更改 NSTableHeaderView 背景颜色?

How ro change NSTableHeaderView's background color without hiding column's titles?

我的 Swift OS X 应用程序上有 view-based NSTableView 使用故事板,它有 12 列。

我将 headerview 子类化并尝试了不同的东西来改变背景颜色,但它们都隐藏了我的标题。

这是尝试做的众多示例之一:

override func drawRect(dirtyRect: NSRect) {
    super.drawRect(dirtyRect)

    // Drawing code here.
    var myLayer = CALayer()
    myLayer.frame = self.frame
    myLayer.backgroundColor = NSColor.greenColor().CGColor
    self.layer?.addSublayer(myLayer)

那个关于用绿色填充整个标题视图的例子,所以我试图告诉我想要这样的标题到我的列:

self.tableView?.tableColumnWithIdentifier("date")?.title = "Date"

...但是没有任何反应。有人可以帮忙吗?

在我的一个应用程序中,我想做(几乎)相同的事情再加上一点(改变 headerView 的高度)。因此我 subclassed (不是 NSTableHeaderView 而是) NSTableHeaderCell 用我自己的 subclass 复制标题,字体,stringValue 等。细胞。 (我无法在 IB 中执行此操作。)

我首先用 class 的 objects 以编程方式替换了 headerView 的所有单元格。在这里(在方法 - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView 中)我设置了 backGroundColor。效果很好。

我的提示:不要将 backGroundColor 设置在(子class NSTableHeaderView) 但在 NSTableHeaderCell.

的子 class 中