Как получить доступ к выбранному элементу меню синему цвету?
Я работаю над приложением, которое имеет пользовательский NSView
на NSStatusBar
, который выполняет весь чертеж, когда пользователь нажимает на него. Но вот проблема, цвет, который я сейчас рисую как цвет фона представления, не совпадает с синим цветом системы.
Мой цвет приложения:
![enter image description here]()
Цвет элемента меню Twitter (система):
![enter image description here]()
Как вы ясно видите, мой синий цвет легче, чем система. Это код, который я использую в настоящее время (и отлично работал на версиях старше Yosemite):
[[NSColor selectedMenuItemColor] set];
NSRectFill(rect);
Я даже попробовал цвет, чтобы выбрать цвет элемента меню, но кажется, что на цвет влияет обои под панелью меню.
Любые идеи о том, как достичь системы, выглядят?
Ответы
Ответ 1
Как вы сказали, в Йосемите, доки, строки состояния и т.д. подвержены влиянию того, что стоит за ними. Попробуйте включить System Preferences > Accessibility > Display > Reduce Transparency
, и вы увидите, как выглядит ваш цвет без этой функции./
Ответ 2
Вот идея. Возможно, вам следует использовать эффект Vibrancy
и получить от NSVisualEffectView
. Я знал, что в прошлом я видел очень похожий нить, и мне понадобилось некоторое время, чтобы найти его. Вот он:
Неисправность, соответствующая яркому фону Yosemite NSMenuItem, содержащего пользовательский вид
Я думаю, ответ Matthes на этот вопрос приведет вас к разрешению вашей проблемы. Обязательно проверьте это. Надеюсь, это поможет - Удачи и отчитайся!