更新自定义 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
如上所示,我有一个视图控制器(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