我正在使用NSView
上具有自定义NSStatusBar
的应用,该用户会在用户点击它时执行所有绘图。但问题是,我目前正在绘制的颜色,因为视图的背景颜色与系统蓝色不同。
我的应用的颜色:
Twitter的菜单项颜色(系统):
正如您清楚地看到的,我的蓝色比系统轻。这是我目前正在使用的代码(并且在Yosemite之前的版本上完美运行):
[[NSColor selectedMenuItemColor] set];
NSRectFill(rect);
我甚至尝试过挑选菜单项的颜色,但似乎颜色受到菜单栏下方壁纸的影响。
关于如何实现系统的任何想法?
答案 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会引导您解决问题。一定要看看。我希望它会有所帮助 - 祝你好运并报告回来!