我在我的Swift OS X应用程序上使用基于故事板的基于视图的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)
这个例子用绿色填充整个headerview,所以我试图告诉我想要标题是这样的:
self.tableView?.tableColumnWithIdentifier("date")?.title = "Date"
...但是什么也没发生。谁能帮忙吗?
最佳答案
在我的一个应用程序中,我想(几乎)做同样的事情,还要做更多的事情(改变headerView的高度)。因此,我将自己的子类从原始单元格复制标题,字体,stringValue等作为子类(而不是NSTableHeaderView)。 (我无法在IB中做到这一点。)
我首先以编程方式用我的类的对象替换了headerView的所有单元格。在这里(在方法NSTableHeaderCell
中)设置了backGroundColor。那很好。
我的提示:不要在(的子类- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
),但在NSTableHeaderView
的子类中。