如何访问系统选择的菜单项蓝色?
Posted
技术标签:
【中文标题】如何访问系统选择的菜单项蓝色?【英文标题】:How to access the system selected menu item blue color? 【发布时间】:2015-06-09 03:47:17 【问题描述】:我正在开发一个在NSStatusBar
上具有自定义NSView
的应用程序,该应用程序在用户单击它时执行所有绘图。但是问题来了,我当前绘制的作为视图背景色的颜色和系统蓝色不一样。
我的应用颜色:
Twitter 的菜单项颜色(系统):
如您所见,我的蓝色比系统要浅得多。这是我目前正在使用的代码(并且在优胜美地之前的版本上运行良好):
[[NSColor selectedMenuItemColor] set];
NSRectFill(rect);
我什至尝试过选择菜单项的颜色,但颜色似乎受到菜单栏下方墙纸的影响。 关于如何实现系统外观的任何想法?
【问题讨论】:
你确定 Twitter 使用的是selectedMenuItemColor
吗?也许他们使用不同的东西?
我只是展示了一个使用系统颜色选择菜单栏项目的示例,而 twitter 使用与其他内置小部件相同的颜色,例如 Wi-Fi 和电池。我一直在旧版本的 OS X 上使用 selectedMenuItemColor
并且始终按预期工作,但在 Yosemite 上却没有。
【参考方案1】:
正如你所说,在优胜美地,码头、状态栏等都会受到它们背后的影响。尝试启用System Preferences > Accessibility > Display > Reduce Transparency
,您将看到没有此功能时您的颜色是什么样的。/
【讨论】:
这似乎是个好主意,但不幸的是这行不通。当我再次打开它时,颜色就消失了。 我的意思是,把它关闭(降低透明度)【参考方案2】:这是一个想法 - 也许您应该使用 Vibrancy
效果并派生自 NSVisualEffectView
。我知道我过去在这里的某个地方看到过一个非常相似的线程,我花了很长时间才找到它。这里是:
Trouble matching the vibrant background of a Yosemite NSMenuItem containing a custom view
我认为Matthes' answer to that question 会引导您解决问题。请务必检查一下。我希望它会有所帮助 - 祝你好运并报告!
【讨论】:
以上是关于如何访问系统选择的菜单项蓝色?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WebView 文本选择菜单中保留标准的“全选”和“复制”菜单项?