设置NSButtonCell的背景颜色

时间:2018-02-05 23:38:48

标签: swift nsbuttoncell

我正在尝试在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)
    }
}

0 个答案:

没有答案