【问题标题】:Is there predefined NSColor for the Dock and Menubar on OS X?OS X 上的 Dock 和菜单栏是否有预定义的 NSColor?
【发布时间】:2015-12-23 18:19:20
【问题描述】:

有一些NSColor 初始化助手,如controlColor(),它们返回各种颜色的系统组件。码头和菜单栏有这样的东西吗?我看不到一个弹出的名字。如果没有这样的helper,有没有其他方法可以获取颜色?

我想将它用作我正在开发的实用程序应用程序的默认NSWindow 背景颜色,该应用程序将显示在一个小的无边框NSWindow 中。

它们都由下图所示的“系统偏好设置”中的“常规”面板控制。

提前致谢。

【问题讨论】:

  • 不确定,但它看起来在 NSColor 中不存在。对于实用程序,您可以使用带有黑色背景的 HUD 类型的 NSPanel,不是吗?
  • @Anoop - 谢谢 - 这是一个非常有用的答案,尽管在我的特定情况下不是一个有效的答案。很高兴知道,我以前不知道,所以谢谢。

标签: macos cocoa uikit appkit


【解决方案1】:

不,菜单栏和 Dock 背景外观不是NSColor 系统颜色。不过,它们看起来确实很像您可以从 NSVisualEffectView 获得的 Dark Vibrant 和 Light Vibrant 样式。

如果您想更改视图的外观以匹配“使用深色菜单栏和 Dock”首选项的状态...好吧,没有用于此的 API,但您可以从存储该首选项的位置读取该首选项。 (因为它不是 API,请注意:不能保证偏好存储在以后的 OS X 版本中不会改变。)

在 Swift 中(为了清楚起见分成几行):

let defaults = NSUserDefaults.standardUserDefaults()
let globalPrefs = defaults.persistentDomainForName(NSGlobalDomain)!
let interfaceStyle = globalPrefs["AppleInterfaceStyle"]
if interfaceStyle as! String == "Dark" {
    // time to be all emo
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-16
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    相关资源
    最近更新 更多