Я хочу что-то сделать, когда приложение завершается, поэтому я добавил методы applicationShouldTerminate:
и applicationWillTerminate
в свой AppDelegate. Тем не менее, когда я запускаю свое приложение из XCode и затем нажимаю ⌘Q
, ни один из методов не вызывается.
Теперь я тестирую, регистрируя и вызывая printf
, и я нигде не вижу вывода когда я выйду из приложения. документация , кажется, указывает, что это должно работать. Google не дал ничего полезного, и поиск в 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).