2013-02-10 2 views
2

У меня есть приложение на основе NSDocument. Я хотел бы знать, когда приложение собирается выйти, чтобы проверить некоторые вещи. Я надеялся, что может быть такой метод, как applicationWillQuit, но просматривая документы для NSDocument и NSApplication, я не могу найти ничего подобного.Как узнать, когда собирается приложение Cocoa?

ответ

9

Существует уведомление вы можете использовать исходящее от NSApplication:

NSNotificationCenter* nc = [NSNotificationCenter defaultCenter]; 
[nc addObserver:self 
     selector:@selector(appWillTerminate:) 
      name:NSApplicationWillTerminateNotification 
      object:nil]; 

Это задокументировано: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/nsapplication_Class/Reference/Reference.html

Передавая объект как nil ваш метод вызывается всякий раз, когда объект запускает уведомление ,

+2

NSApplicationWillTerminateNotification Отправлено terminate: метод, указывающий, что приложение будет завершено. Добавлено только в том случае, если приложение метода делегатаShouldTerminate: возвращает YES. Объектом уведомления является sharedApplication. Это уведомление не содержит словарь userInfo. – uchuugaka

+3

Делегат вашего приложения также может определить, должно ли что-то делать сначала в методе делегирования applicationShouldTerminate. NSApplicationWillTerminateNotification только говорит, что это произойдет. – uchuugaka

+0

Yap, правильно. '- (NSApplicationTerminateReply) applicationShouldTerminate: (NSApplication *) отправитель будет сигнатурой метода. – guitarflow

Смежные вопросы