更新自定义 NSWindow 外观

Updating Custom NSWindow Appearance

如上所示,我有一个视图控制器(NSViewController)和一个window控制器(NSWindowController)。我有一个自定义 window (NSWindow),这样我就可以自定义主 window 的外观。特别是,我只想将特定颜色设置为其背景颜色。

class BasicBorderlessWindow: NSWindow {
    override init(contentRect: NSRect, styleMask style: NSWindowStyleMask, backing bufferingType: NSBackingStoreType, defer flag: Bool) {
        super.init(contentRect: contentRect, styleMask: style, backing: .buffered, defer: false)
        self.isOpaque = false
        self.backgroundColor = NSColor.green
    }
}

现在,整个window都是绿色的。

我想知道的是一种在应用程序启动后更改整个 window 颜色的方法。子类 window (BasicBorderlessWindow) 连接到 window 控制器。所以我可以从视图控制器访问它。我可以创建一个函数来设置新颜色,以便我可以从视图控制器调用它。但是我无法刷新 window。那么如何更改window的背景颜色并更新呢?谢谢。

尝试在 window 控制器中设置 window 的背景颜色。您根本不需要 NSWindow 子类。

self.window?.backgroundColor = NSColor.blue