如何访问系统选择的菜单项蓝色?

时间:2015-04-04 04:04:29

标签: nsmenu nsmenuitem nscolor nsstatusbar yosemite

我正在使用NSView上具有自定义NSStatusBar的应用,该用户会在用户点击它时执行所有绘图。但问题是,我目前正在绘制的颜色,因为视图的背景颜色与系统蓝色不同。

我的应用的颜色:
enter image description here

Twitter的菜单项颜色(系统):
enter image description here

正如您清楚地看到的,我的蓝色比系统轻。这是我目前正在使用的代码(并且在Yosemite之前的版本上完美运行):

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

我甚至尝试过挑选菜单项的颜色,但似乎颜色受到菜单栏下方壁纸的影响。
关于如何实现系统的任何想法?

2 个答案:

答案 0 :(得分:6)

正如你所说,在优胜美地,码头,状态栏等受其背后的影响。尝试启用System Preferences > Accessibility > Display > Reduce Transparency,您将看到没有此功能的颜色./

答案 1 :(得分:2)

这是一个想法 - 也许您应该使用Vibrancy效果并从NSVisualEffectView派生。我知道我在过去的某个地方看过一个非常相似的主题,我花了很长时间才找到它。这是:

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

我认为Matthes' answer to that question会引导您解决问题。一定要看看。我希望它会有所帮助 - 祝你好运并报告回来!