如何知道Cocoa应用即将退出的时间?

Joe*_*eds 2 xcode cocoa nsdocument nsapplication

我有一个基于NSDocument的应用程序.我想知道应用程序什么时候退出以验证某些事情.我希望可能有一个方法,如applicationWillQuit,但查看NSDocument和NSApplication的文档,我找不到任何类似的东西.

gui*_*low 10

您可以使用来自NSApplication的通知:

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

这在此处记录:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/nsapplication_Class/Reference/Reference.html

通过传递对象,nil只要对象触发通知,就会调用您的方法.

  • 您的应用程序委托还可以确定是否应该首先在applicationShouldTerminate委托方法中执行某些操作.NSApplicationWillTerminateNotification只表示它会发生. (3认同)
  • NSApplicationWillTerminateNotification由terminate:方法发布,表示应用程序将终止.仅在委托方法applicationShouldTerminate:if时返回.通知对象是sharedApplication.此通知不包含userInfo字典. (2认同)