【问题标题】:applicationShouldTerminate not called in AppDelegate and NSApplicationWillTerminateNotification not being sent在 AppDelegate 中未调用 applicationShouldTerminate 并且未发送 NSApplicationWillTerminateNotification
【发布时间】:2019-10-21 17:59:31
【问题描述】:

我在最新的 Catalina 上使用 XCode 11.1,并且没有调用我的应用程序的退出事件。如果我从任何地方观察它,我在 AppDelegate 中的 applicationShouldTerminate 也不会得到 NSApplicationWillTerminateNotification 。这是来自使用默认故事板的 XCode 应用程序模板的默认退出行为(使用菜单退出命令、Command-Q 或使用 applicationShouldTerminateAfterLastWindowClosed 返回 YES 关闭窗口)。

这发生在一个全新的 Xcode 项目模板中(如果我启动一个新的 macOS“App”模板,然后将 applicationShouldTerminate 方法添加到应用委托)。

正在调用其他委托方法,例如 applicationShouldTerminateAfterLastWindowClosed。

是我做错了什么还是卡塔琳娜搞砸了?

【问题讨论】:

    标签: objective-c xcode macos cocoa macos-catalina


    【解决方案1】:

    嗯,我想通了,这是因为NSSupportsSuddenTermination 现在似乎默认开启了。

    要禁用突然终止,请在应用程序的信息属性列表文件Info.plist 中将此布尔属性设置为NO

    【讨论】:

      【解决方案2】:

      NSSupportsSuddenTermination 在 Xcode 中也称为“应用程序可以在用户关闭或注销时立即终止”,默认情况下似乎已启用。

      感谢@toastie

      【讨论】:

      • 那么在哪里可以禁用呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      相关资源
      最近更新 更多