未在AppDelegate中调用applicationShouldTerminate且未发送NSApplicationWillTerminateNotification

时间:2019-10-21 17:59:31

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

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

使用全新的Xcode项目模板会发生这种情况(如果我启动新的macOS“ App”模板,则将applicationShouldTerminate方法添加到应用程序委托中。)

正在调用诸如applicationShouldTerminateAfterLastWindowClosed之类的其他委托方法。

我是在做些非常错误的事情还是卡塔琳娜(Catalina)搞砸了?

2 个答案:

答案 0 :(得分:5)

好吧,我知道了,这是因为似乎NSSupportsSuddenTermination现在默认处于打开状态。

答案 1 :(得分:1)

NSSupportsSuddenTermination也称为“用户在Xcode中关闭或注销时可以立即终止应用程序”,并且默认情况下处于启用状态。

感谢@toastie