2017-06-21 47 views
2

我想知道当一个窗口关闭,我实现了这个代码将关闭:试图知道当一个窗口在基于MacOS的文档应用

class ViewController: NSViewController, NSWindowDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let window: NSWindow? = view.window 
     window?.delegate = self 
    } 

    func windowWillClose(_ aNotification: Notification) { 
     print("windowWillClose") 
    } 

} 

可惜什么也没有发生,什么可能我做了错误的?

文件:https://developer.apple.com/documentation/appkit/nswindow/1419400-willclosenotification

PS 我已经看过这个问题没有找到一个解决办法:Handle close event of the window in Swift

回答

3

的问题存在,窗口属性将总是返回零里面viewDidLoadMethod。您需要在viewWillAppear方法中设置代理:

class ViewController: NSViewController, NSWindowDelegate { 
    override func viewWillAppear() { 
     super.viewWillAppear() 
     view.window?.delegate = self 
    } 
    func windowWillClose(_ aNotification: Notification) { 
     print("windowWillClose") 
    } 
} 
+0

非常感谢您Leo! – Cue

+0

不客气 –

相关问题