我想在应用程序终止时做一些事情,所以我向我的 AppDelegate 添加了方法applicationShouldTerminate:
。applicationWillTerminate
但是,当我从 XCode 运行我的应用程序然后按⌘Q
时,不会调用任何方法。
现在我正在通过 logging 和 calls 进行测试,printf
当我退出我的应用程序时,我在任何地方都看不到任何输出。该文档似乎表明这应该有效。谷歌没有产生任何有用的东西,在 GitHub 上搜索示例代码大多会返回观察其他应用程序被终止的应用程序。
为什么不applicationShouldTerminate:
和applicationWillTerminate
被叫?
这是我的应用程序委托中的那些方法实现:
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSNotification *)aNotification {
printf("printf applicationShouldTerminate");
NSLog(@"NSLog applicationShouldTerminate");
return NSTerminateNow;
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
printf("printf applicationWillTerminate");
NSLog(@"NSLog applicationWillTerminate");
}
(我还通过在 Xcode 中创建一个全新的项目进行了测试,您可以在https://github.com/noahlt/TestTerminator找到该项目)。