NSTableView с пользовательским фоном строки: не допускать, чтобы метка стала белой при выделении - PullRequest
3 голосов
/ 15 февраля 2012

У меня есть NSTableView на основе представления, в котором используются пользовательские NSTableRowView экземпляры для рисования пользовательских фонов ячеек для обычных и выбранных строк.

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

Однако это не очень хорошо работает с моим пользовательским выбором фона / строки. Белый текст больше не виден. Есть ли способ предотвратить объединение цвета NSTextField с выделением (желательно без подклассов, потому что у меня такая же проблема с NSButton)?

Вот снимок экрана с выбранной строкой посередине (трудно увидеть белую метку):

selected row in the middle

1 Ответ

4 голосов
/ 15 февраля 2012

Лучшее решение - это создать подкласс NSTableCellView и переопределить метод setBackgroundStyle:.

Это более подробно описано в ответе @ Seth на этот вопрос: NSTextField в NSTableCellView .

...