当前位置: 首页 > 面试题库 >

尝试知道基于macOS Document的应用程序中的窗口何时关闭

茅华灿
2023-03-14
问题内容

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

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


问题答案:

问题在于window属性将始终在viewDidLoadMethod内部返回nil。您需要在viewWillAppear方法中设置委托:

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


 类似资料:
  • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类

  • 对于JavaFX,通常是: 是否有方法检测TornadoFX视图关闭?

  • 我有一个数据库单例,我想在应用程序完成时对其调用.close()。 我可以在Application类中的onCreate()中对数据库调用.open(),但在哪里调用.close()呢?

  • 问题内容: 当我的窗口(使用Java Swing创建)关闭时,我试图调用一个函数进行清理。在我的初始化代码中,我这样做: 但是,当我按下退出按钮时,永远不会调用函数“ formLoginWindowClosed”。我也尝试过使用java.awt.event.WindowAdapter作为参数创建侦听器,但是它也不起作用。如何创建用于关闭窗口的侦听器?提前致谢。 问题答案: 将框架设置为关闭退出时,

  • 问题内容: 我想知道如何编写一个Java程序,该程序知道哪个Windows应用程序是重点。我可以打开许多窗口,但是我想知道正在使用的窗口(例如,当我输入此内容时,现在是Google Chrome)。 我不需要更改窗口或应用程序中的任何内容,只需要知道其名称即可。 问题答案: 恐怕没有Java API。JVM对它无法管理的窗口一无所知。您可能必须使用JNI并调用此函数 MSDN链接 PS。如果需要获

  • 因为socket.io是向后兼容的,并且可以很好地降级,所以我想将它用于WebSocket/AJAX轮询部分。 问题是socket.io默认情况下与Node.js后端一起工作。 我对服务器有root访问权限,并行运行两者(Apache和Node)或添加任何额外的东西都没有问题。 我知道DNode+PHP,但我无法想象如何组装所有东西--Apache、PHP、Node、Socket.io、DNode