Swift 3 NSWindowStyleMask

时间:2016-09-18 19:43:18

标签: nswindow

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

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

请告诉我如何解决?

3 个答案:

答案 0 :(得分:8)

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

Empty Window Controller

答案 1 :(得分:5)

这对我有用:

    window.styleMask = [.titled, .miniaturizable]

答案 2 :(得分:1)

如果有人像我一样有同样的问题,这里是SWIFT 3的工作版本

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

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位置和宽度和高度更改为首选窗口大小。