Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 尝试了解macOS基于文档的应用程序中的窗口何时关闭_Swift_Cocoa - Fatal编程技术网

Swift 尝试了解macOS基于文档的应用程序中的窗口何时关闭

Swift 尝试了解macOS基于文档的应用程序中的窗口何时关闭,swift,cocoa,Swift,Cocoa,我试图知道窗口何时关闭,我实现了以下代码: class ViewController: NSViewController, NSWindowDelegate { override func viewDidLoad() { super.viewDidLoad() let window: NSWindow? = view.window window?.delegate = self } func windowWillClo

我试图知道窗口何时关闭,我实现了以下代码:

class ViewController: NSViewController, NSWindowDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

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

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

}
不幸的是什么都没发生,我会做错什么

文件:

PS
我已经阅读了这个问题,但没有找到解决方案:

问题是window属性在viewDidLoadMethod中总是返回nil。您需要在VIEWWILLEXPENCE方法中设置委托:

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

存在的问题是,window属性在viewDidLoadMethod中始终返回nil。您需要在VIEWWILLEXPENCE方法中设置委托:

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