2015-04-04 41 views
29

我正在制作一个应用程序,该应用程序在NSStatusBar上有一个自定义NSView,该应用程序在用户单击它时执行所有绘图。但问题在于,我正在绘制颜色,因为视图的背景颜色与系统蓝色不同。如何访问系统选择的菜单项蓝色?

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

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

正如你清楚地看到,我的蓝色比系统的方式轻。这是我目前使用的代码(和旧版本比优山美地的工作完美):

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

我甚至试过颜色选择菜单项的颜色,但它似乎喜欢的颜色是由下面的壁纸影响菜单栏。
关于如何实现系统的任何想法?

+0

你确定Twitter正在使用'selectedMenuItemColor'吗?也许他们使用不同的东西? – Eun 2015-04-27 15:00:29

+0

我只是展示了一个使用所选菜单栏项目的系统颜色的示例,并且Twitter使用与其他内置小部件(如Wi-Fi和电池)相同的颜色。我在旧版OS X上一直使用'selectedMenuItemColor',并且一直按预期工作,而不是在Yosemite上。 – 2015-04-27 17:12:38

回答

6

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

+0

这似乎是个好主意,但不幸的是这并不奏效。当我再次打开它时,颜色就会消失。 – 2015-04-15 02:13:35

+0

我的意思是说,把它*关*(降低透明度) – 2015-04-22 22:22:42