2011-11-19 47 views
2

我实现applicationWillTerminate方法,但它从来没有所谓applicationWillTerminate不叫

-(void)applicationWillTerminate:(NSNotification *)notification 
{ 
    [[NSApplication sharedApplication] terminate:self]; 
    NSLog(@"EOP"); 
} 

如何申请前关闭执行一些代码?

感谢

+0

实在不行,还有来自iOS的开发库是UIApplication的,在这里的Mac OS –

回答

4

我只是说

-(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender{ 
return TRUE 
} 

现在applicationWillTerminate调用

+1

如果这改变它,那么也许该应用程序实际上并没有关闭?你刚刚关闭了应用程序的所有窗口? –

+0

最有可能你是对的。但现在应用程序关闭:我得到了我需要的 –

+1

这是不可能关闭一个应用程序;那个动词不和那个名词一起去。是的,当用户关闭最后一个窗口时,应用程序通常不会自动退出;你必须选择那个。事实上,使用Quit命令退出应用程序总是会触发'applicationWillTerminate:'(假设没有任何内容,例如确认提醒)。在Lion中引入的另一个替代方案是Automatic Termination,它更懒惰,假装应用程序仍在运行;看文档。 –

1

请设置您的plist到YES键(UIApplicationExitsOnSuspend)。

UIApplicationExitsOnSuspend - (类型)布尔 - (值)是

+0

这个问题是关于osx不是ios的,注意'NSApplication'的问题? –