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

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 文本选择菜单中保留标准的“全选”和“复制”菜单项?

重新加载页面后如何突出显示导航栏中的活动菜单项

如何在ul下拉菜单中显示选定的菜单项

如何使用 Selenium 和 Python 选择下拉菜单项(值或文本)? [复制]

(VB6)窗体菜单项怎么自定义背景色和字体颜色(含子菜单)