Каков цвет выделения выделения NSTableView?

Я делаю полностью настраиваемый элемент управления (NSView) и хочу использовать предпочитаемый пользователем цвет подсветки для его части, когда он выбран, как это делает NSTableView.

К сожалению, похоже, нет никакого способа получить это. В документации NSColor указан только один (не устаревший) цвет, выбранный пользователем, selectedTextBackgroundColor, а NSTableView использует гораздо более темный или насыщенный (?) цвет для выделения выделения.

Я пробовал пару вещей, например, увеличение насыщенности (не подходит для серого) и затемнение с помощью shadow() (выглядит плохо, а не как NSTableView), но я не эксперт по цветам.

Кто-нибудь знает, что делает NSTableView, чтобы получить этот цвет? Есть ли способ получить к нему более прямой доступ?


person Naha    schedule 14.11.2016    source источник


Ответы (1)


NSColor.alternateSelectedControlColor это то, что вы хотите. Комментарии в NSTableView.h несколько устарели (имеется в виду светло-голубой цвет, хотя его больше нет). Я не вижу, чтобы константы в NSColor устарели... не уверен, о чем вы говорите? (Может быть, ошибка документации? Если сомневаетесь, посмотрите заголовки...)

person Nicholas Riley    schedule 14.11.2016
comment
В руководстве по темам цветового программирования в разделе «Доступ к системным цветам» говорится: Примечание. Некоторые системные цвета, хотя и остаются действительными, больше не имеют значения в Aqua. К ним относятся любые из тех, у кого есть контроль в их имени. - person Naha; 15.11.2016
comment
Цвет в цветовой палитре выглядел неправильно, но я думаю, что есть ошибка с их обновлением. Это выглядит правильно в моем приложении. - person Naha; 15.11.2016
comment
developer.apple.com/documentation/appkit/nscolor/ говорит alterSelectedControlColor устарело и вместо этого используется selectedContentBackgroundColor. - person Liron Yahdav; 13.08.2020