代码之家  ›  专栏  ›  技术社区  ›  bulletproof software engineer

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

  •  1
  • bulletproof software engineer  · 技术社区  · 3 年前

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

    enter image description here

    我无法播放声音文件,因为我无法控制这一部分,如何延迟或控制真正的终止应该在什么时候发生,当用户从dock退出应用程序时?

    1 回复  |  直到 3 年前
        1
  •  1
  •   jnpdx    3 年前

    您可以实施 applicationShouldTerminate 在您的 AppDelegate 告诉系统当用户请求终止应用程序时应该发生什么。

    可能的返回值为( https://developer.apple.com/documentation/appkit/nsapplication/terminatereply ):

    • terminateNow
    • terminateCancel
    • terminateLater

    请注意,当用户选择退出你的应用程序时,他们希望它能相对即时地退出,所以你应该仔细考虑延迟这样的终止对用户体验的影响。