Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSTableView在表格失去焦点时高亮显示颜色_Swift_Macos_Nstableview_Nsoutlineview - Fatal编程技术网

Swift NSTableView在表格失去焦点时高亮显示颜色

Swift NSTableView在表格失去焦点时高亮显示颜色,swift,macos,nstableview,nsoutlineview,Swift,Macos,Nstableview,Nsoutlineview,我正在项目中使用NSTableView。当用户点击一行时,我使用标准的蓝色选择颜色。当桌子失去焦点时,选择颜色变为浅灰色 我试图保持蓝色的选择颜色,即使桌子失去了焦点 我已经尝试覆盖NSTableCellView的backgroundStyle,我可以在选择或不选择单元格时设置自定义颜色,但在表格失去焦点时backgroundColor属性设置为.light。尝试覆盖NSTableRowView,例如,我保持灰色: class CustomRowView: NSTableRowView { o

我正在项目中使用NSTableView。当用户点击一行时,我使用标准的蓝色选择颜色。当桌子失去焦点时,选择颜色变为浅灰色

我试图保持蓝色的选择颜色,即使桌子失去了焦点


我已经尝试覆盖NSTableCellView的backgroundStyle,我可以在选择或不选择单元格时设置自定义颜色,但在表格失去焦点时backgroundColor属性设置为.light。

尝试覆盖
NSTableRowView
,例如,我保持灰色:

class CustomRowView: NSTableRowView {

override func drawSelectionInRect(dirtyRect: NSRect) {
    NSColor.secondarySelectedControlColor().set()
    NSRectFill(dirtyRect)
}
}
但是,强制NSTableView为用户自定义行有点棘手。。如果您使用NIB或故事板,请添加新的“假”行并设置自定义类。然后将标识符设置为“NSTableViewRowViewKey”。 以下是屏幕截图,它应该是什么样子:


这样,表视图(或大纲视图-没有区别)将使用自定义行视图。

这是一个完美的答案。谢谢