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

时间:2013-02-10 13:09:37

标签: xcode cocoa nsdocument nsapplication

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

2 个答案:

答案 0 :(得分:10)

您可以使用来自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传递,只要对象触发通知,就会调用您的方法。

答案 1 :(得分:0)

我们在 AppDelegate.swift AppDelegate.m 类中有一个委托方法。您可以使用它并在关闭它之前向您的应用程序添加功能。

func applicationWillTerminate(_ aNotification: Notification) {
    // Insert code here to tear down your application
}