如何在 macOS 中强制视图控制器使用浅色或深色模式?

Ram*_*tra 6 macos swift

我知道有一种方法可以以编程方式覆盖 iOS 中的界面样式,如下所示:

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        overrideUserInterfaceStyle = .dark    
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,我尝试在 macOS 中搜索类似的东西,但没有找到。有没有办法在 macOS 中实现这一点?

Asp*_*eri 4

可以通过以下方式完成

public protocol NSAppearanceCustomization : NSObjectProtocol {
    @available(OSX 10.9, *)
    var appearance: NSAppearance? { get set }
Run Code Online (Sandbox Code Playgroud)

NSApplicationNSWindowNSView符合此协议,因此您可以像这样使用它

window.appearance = NSAppearance(named: .aqua)
window.makeKeyAndOrderFront(nil)
Run Code Online (Sandbox Code Playgroud)