我正在尝试在tableview中设置复选框的背景颜色,但我正在努力。目前我已经将NSButtonCell
子类化如下:
import Cocoa
class MyCheckBox: NSButtonCell {
override init(textCell string: String) {
super.init(textCell: string)
self.backgroundColor = NSColor.red
}
required init(coder: NSCoder) {
super.init(coder: coder)
}
}
然后,在身份检查器中,我已将复选框的自定义类设置为MyCheckBox
,但它似乎不起作用。我不确定分配给self.backgroundColor
是否是设置背景颜色的正确方法,或者使用身份检查器是否是让每个复选框使用正确背景颜色的方法,我再次努力关于在哪里可以找到这些信息的大量Apple文档。
我还尝试在视图控制器中为此复选框列(名为keepOnTopColumn
)创建一个插座,并试图让我的自定义类以这种方式工作:
let str: String = ""
keepOnTopColumn.dataCell = MyCheckBox(textCell: str)
我还试图直接访问背景颜色:
keepOnTopColumn.dataCell.backgroundColor = NSColor.red
但这会导致错误“类型的值'任何'没有成员'backgroundColor'”
最后,我还试图影响单元格的父NSButton:
class MyCheckButton: NSButton {
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
self.wantsLayer = true
self.layer?.backgroundColor = NSColor.red as! CGColor
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
}