如何将 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
我正在为 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