OS X上的Dock和菜单栏是否有预定义的NSColor?

时间:2015-12-23 18:19:21

标签: macos cocoa uikit appkit

有一些NSColor初始化帮助程序,如controlColor(),它们返回各种颜色的系统组件。码头和菜单栏有没有这样的东西?我无法看到一个名字突然冒出来。如果没有这样的助手,还有另一种获得颜色的方法吗?

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

他们都是由“将军”控制的。面板和系统偏好设置'如下图所示。

System Preferences Dialog

先谢谢。

1 个答案:

答案 0 :(得分:3)

不,菜单栏和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
}