Swift 3 NSWindowStyleMask

Swift 3 NSWindowStyleMask

使用 Swift 3 更新到 Xcode 8 后,以下代码不再有效

self.view.window?.styleMask = NSTitledWindowMask | NSMiniaturizableWindowMask

请告诉我如何解决它?

window.styleMask.insert(.fullSizeContentView)

或者

window.styleMask = window.styleMask.union(.fullSizeContentView)

示例:

override func windowDidLoad() {
    super.windowDidLoad()
    guard let window = window else { return }
    window.titlebarAppearsTransparent = true
    window.titleVisibility = .hidden
    window.styleMask.insert(.fullSizeContentView)
}

如果有人也遇到和我一样的问题,这里是 SWIFT 3

的工作版本

如果使用 NSViewController,请添加以下内容:(感谢 João Oliveira 的贡献)

override func viewDidAppear() {
    self.view.window?.styleMask.insert(.titled) /* Enable Title */
    self.view.window?.styleMask.insert(.closable)  /* Enable Close button */
}

如果使用 NSWindowController,请添加以下内容:

init(){
   self.m_window = NSWindow(
   contentRect: NSRect(300, 300, width: 500, height: 500), 
   styleMask: NSWindowStyleMask(rawValue: (NSWindowStyleMask.closable.rawValue | NSWindowStyleMask.titled.rawValue)), 
   backing: NSBackingStoreType.buffered, defer: false
   )
}

** 将 X、Y 位置以及宽度和高度更改为您喜欢的 window 大小。

这对我有用:

    window.styleMask = [.titled, .miniaturizable]