2017-06-30 105 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