Цвет метки для выбранной строки в NSTableview
Я подкласс NSTableRowView
в представлении на основе NSTableView
изменить цвет выделения на светло-синий вместо цвета по умолчанию.
К сожалению, когда я выбираю строку, цвет меток и текстовых полей внутри моей пользовательской ячейки становится белым, и он не читается.
Как я могу предотвратить изменение цвета текста при выделении?
Решение найдено:
Все, что мне нужно было сделать, это реализовать -setBackgroundStyle:
по моему обычаю NSTableCellView
и там называют setBackgroundStyle:NSBackgroundStyleLight
на NSCell
из всех элементов управления, которые я хочу оставить темными при выборе.
3 ответа
Как вы изменили цвет выделения? Похоже, это могло быть вызвано тем, что вы добавили подпредставление или подслой (возможно, в cell.selectedBackgroundView?) Поверх существующих слоев. Если у вас есть какие-либо вызовы insertSublayer или subView, убедитесь, что вы делаете их с индексом 0.
ОК, я понял это.
Все, что мне нужно было сделать, это реализовать -setBackgroundStyle: в моем собственном NSTableCellView и там вызвать setBackgroundStyle:NSBackgroundStyleLight для NSCell всех элементов управления, которые я хочу оставить темными при выделении.