如何更改 NSTableView 选中时的文字颜色

继承自NSTableCellView,重写backgroundStyle方法,此方法在 cell 选中状态改变时会出发,在将要赋值的方法里,判断当前 cell 所在的行的选中状态,如果当前行被选中了,则更改 cell 文本的颜色,如果没有选中,则重置为默认颜色。

注意:事实证明,在 didSet 改变颜色会有延迟,因此在 willSet 中设置效果要好很多。

class CSTableCellView: NSTableCellView {
    override var backgroundStyle: NSView.BackgroundStyle {
        
        willSet {
            if let row = self.superview as? NSTableRowView{
                if row.isSelected {
                    self.textField?.textColor = NSColor(red: 0.20, green: 0.85, blue: 0.99, alpha: 1.00)
                }else {
                    self.textField?.textColor = NSColor.white
                }
            }
        }
}
}

你可能感兴趣的:(如何更改 NSTableView 选中时的文字颜色)