【问题标题】: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 上却没有。

标签: nsmenu nsmenuitem nscolor nsstatusbar osx-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 会引导您解决问题。请务必检查一下。我希望它会有所帮助 - 祝你好运并报告!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多