如何在 macOS 中延迟退出应用程序的退出操作?

问题描述 投票:0回答:1

我想在我的应用程序被用户终止之前播放一些声音。如果用户从应用程序菜单中按退出,我可以进行我想要的所有自定义,但如果用户想从扩展坞退出应用程序,如下所示:

我无法播放声音文件,因为我无法控制这部分,如何延迟或控制何时应该发生真正的终止,当用户想要从扩展坞退出应用程序时?

swift macos appkit
1个回答
0
投票

当用户从 Dock 菜单中选择“退出”时,App Delegate 的

applicationWillTerminate
会接到电话。

在该函数中,您可以运行任意代码,例如播放声音,甚至休眠线程以延迟应用程序的终止。

func applicationWillTerminate(_ aNotification: Notification) {
    NSSound.beep()
    print("Going to sleep...")
    Thread.sleep(forTimeInterval: 5)
    print("Done")
}

话虽这么说,延迟终止这样的应用程序可能会带来有问题的用户体验。但是,这在技术上是可行的。

© www.soinside.com 2019 - 2024. All rights reserved.