如何将 titlebar/toolbar 和 NSButtons 更改为深色主题?

How to change the titlebar/toolbar and NSButtons to a dark theme?

我正在为 macOS (OS X) 开发一个项目,我希望 window 设置为深色主题而不是默认的浅色主题,具有浅灰色 titlebar/toolbar 和白色按钮。

如何将 titlebar/toolbar 更改为黑色,将按钮更改为深灰色?

我正在 Swift 中编码,但 Objective-C 中的答案也会有所帮助。我附上了一张我想要让它看起来像的图片:

好的,我找到了解决方案。

要将 WindowController 更改为深色主题,请在 windowDidLoad() 函数中键入以下代码:

window?.appearance = NSAppearance(named: NSAppearanceNameVibrantDark)

这使得 titlebar/toolbar 变成黑色,按钮变成深灰色。

此外,如上图所示,要使标题栏和工具栏合二为一,请在 windowDidLoad() 函数中与上述代码一起输入以下代码:

window?.titleVisibility = .hidden

这是应用 运行 时 window 的图像:

我希望这对像我一样想知道如何做到这一点的人有所帮助。

要从 ViewController 内部调用它,而没有 window 的直接出口:

override func viewDidAppear() {
    super.viewDidAppear()
    self.view.window?.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)
}

请注意,您必须从 viewDidAppear() 而不是 viewDidLoad() 调用,因为 window 仍然为零。

编辑:更新为 Swift 4