2017-06-30 71 views
1

enter image description here更新定制NSWindow外观

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

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 
    } 
} 

现在,整个窗口是绿色的。

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

回答

1

尝试从窗口控制器内设置窗口的背景色。完全不需要NSWindow子类。

self.window?.backgroundColor = NSColor.blue