2016-09-30 4 views
0

Я использую NSTableView в своем проекте. Когда пользователь нажал на строку, я использую стандартный синий цвет выделения. Когда таблица потеряла фокус, цвет выделения меняется на светло-серый.NSTableView выделяет цвет, когда таблица теряет фокус

Я пытаюсь сохранить синий цвет выбора, даже стол теряет фокус.

Я уже пробовал переопределять backgroundStyle из NSTableCellView, и я могу установить собственный цвет, когда ячейка выбрана или нет, но свойство backgroundColor имеет значение .light, когда таблица потеряла фокус.

ответ

0

Попытка переопределить NSTableRowView, например, я держать серый цвет:

class CustomRowView: NSTableRowView { 

override func drawSelectionInRect(dirtyRect: NSRect) { 
    NSColor.secondarySelectedControlColor().set() 
    NSRectFill(dirtyRect) 
} 
} 

Однако это немного сложно заставить NSTableView для пользователя пользовательского ряда .. Если вы используете крупку или раскадровку добавить новую «фальшивую» строку и установите свой собственный класс. Затем установите идентификатор как «NSTableViewRowViewKey». Вот снимок экрана, как это должно выглядеть:

enter image description here

Таким образом, вид таблицы (или контурный вид - без разницы) будет использовать вид пользовательских строк.

+0

Это прекрасный ответ. благодаря – emreoktem

Смежные вопросы