我在我的项目中使用NSTableView。当用户点击一行时,我使用标准的蓝色选择颜色。当桌子失去焦点时,选择颜色会变为浅灰色。
我试图保持蓝色选择颜色,即使桌子失去它的焦点。
我已经尝试覆盖NSTableCellView的backgroundStyle,我可以在选择单元格时设置自定义颜色,但是当表格失去焦点时,backgroundColor属性设置为.light。
答案 0 :(得分:1)
尝试覆盖NSTableRowView
,例如我保持灰色:
class CustomRowView: NSTableRowView {
override func drawSelectionInRect(dirtyRect: NSRect) {
NSColor.secondarySelectedControlColor().set()
NSRectFill(dirtyRect)
}
}
然而,迫使NSTableView使用自定义行有点棘手。如果你使用笔尖或故事板添加新的"假的"行并设置您的自定义类。然后将标识符设置为" NSTableViewRowViewKey"。 这是一个截屏视频:
这样,表格视图(或大纲视图 - 没有区别)将使用您的自定义行视图。