Цвет метки для выбранной строки в NSTableview

Я подкласс NSTableRowView в представлении на основе NSTableView изменить цвет выделения на светло-синий вместо цвета по умолчанию.

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

Как я могу предотвратить изменение цвета текста при выделении?

Решение найдено:

Все, что мне нужно было сделать, это реализовать -setBackgroundStyle: по моему обычаю NSTableCellView и там называют setBackgroundStyle:NSBackgroundStyleLight на NSCell из всех элементов управления, которые я хочу оставить темными при выборе.

3 ответа

Решение

Как вы изменили цвет выделения? Похоже, это могло быть вызвано тем, что вы добавили подпредставление или подслой (возможно, в cell.selectedBackgroundView?) Поверх существующих слоев. Если у вас есть какие-либо вызовы insertSublayer или subView, убедитесь, что вы делаете их с индексом 0.

Вам нужно будет сделать кастомную NSCell.

ОК, я понял это.

Все, что мне нужно было сделать, это реализовать -setBackgroundStyle: в моем собственном NSTableCellView и там вызвать setBackgroundStyle:NSBackgroundStyleLight для NSCell всех элементов управления, которые я хочу оставить темными при выделении.

Другие вопросы по тегам