Хорошо, я знаю, что у него уже есть принятый ответ, но для любого, как я, работающего с NSOutlineView
и имеющего .selectionHighlightStyle = .sourceList
, можно использовать этот код, чтобы сделать выбор серым.Этот метод не будет мерцать при изменении выбора, а также останется серым, если приложение свернуто.
NSTableView / NSOutlineView Делегат:
func outlineView(_ outlineView: NSOutlineView, rowViewForItem item: Any) -> NSTableRowView?
{
let row : CustomRowView = CustomRowView.init()
row.identifier = "row"
return row
}
А затем создайте новый файл CustomRowView.swift
сthis:
class CustomRowView : NSTableRowView
{
override var isEmphasized: Bool {
get { return self.isEmphasized }
set(isEmp) { self.isEmphasized = false }
}
}
Это позволит сохранить выделение серым всегда.