2015-04-04 4 views
29

Я работаю над приложением, которое имеет пользовательский NSView на NSStatusBar, который выполняет весь чертеж, когда пользователь нажимает на него. Но вот проблема: цвет, который я сейчас рисую в качестве фона фона, не совпадает с синим цветом системы.Как получить доступ к выбранному элементу меню синему цвету?

цвет моего приложения в:
enter image description here

пункт меню цвет Твиттера (система):
enter image description here

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

[[NSColor selectedMenuItemColor] set]; 
NSRectFill(rect); 

Я даже попробовал цвет выбирать цвет пункта меню, но кажется, что цвет влияет ниже обои в строке меню.
Любые идеи о том, как добиться успеха в системе?

+0

Вы уверены, что Twitter использует 'selectedMenuItemColor'? Может быть, они что-то используют? – Eun

+0

Я просто показывал пример, который использует цвет системы для выбранных элементов меню, а твиттер использует тот же цвет, что и другие встроенные виджеты, такие как Wi-Fi и батарея. Я использовал 'selectedMenuItemColor' в более старых версиях OS X и всегда работал, как ожидалось, но не на Yosemite. –

ответ

6

Как вы сказали, в Йосемити, доки, бары состояния и т. Д. Подвержены влиянию того, что стоит за ними. Попробуйте включить System Preferences > Accessibility > Display > Reduce Transparency, и вы увидите, как выглядит ваш цвет без этой функции./

+0

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

+0

Я хотел сказать, включите его * off * (уменьшите прозрачность) –

2

Идея - Возможно, вам стоит использовать эффект Vibrancy и получить из NSVisualEffectView. Я знал, что в прошлом я видел очень похожий нить, и мне понадобилось некоторое время, чтобы найти его. Вот оно:

Trouble matching the vibrant background of a Yosemite NSMenuItem containing a custom view

Я думаю, что Matthes' answer to that question приведет вас к решению вашей проблемы. Обязательно проверьте это. Надеюсь, это поможет - Удачи и отчитайтесь!

 Смежные вопросы

  • Нет связанных вопросов^_^