Search code examples
xcodecocoansdocumentnsapplication

How to know when a Cocoa app is about to quit?


I have a NSDocument based application. I'd like to know when the application is about to quit to validate some things. I'd hoped there might be a method such as a applicationWillQuit, but looking through the docs for both NSDocument and NSApplication I can't find anything similar.


Solution

  • There is a notification you can use coming from your NSApplication:

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

    This is documented here: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/nsapplication_Class/Reference/Reference.html

    By passing the object as nil your method is being called whenever an object fires the notification.