2010-10-15 145 views
9

当主(唯一一个)关闭时,如何正确退出Mac OS X应用程序?NSWindow关闭时退出应用程序

我知道那里有一种方法- (void)windowWillClose:(NSNotification *)notificationNSWindowDelegate。但它不太适合我的情况,因为它在NSWindow关闭之前被称为

回答

23

你不能有windowDidClose事件,因为伴随它的通知将持有一个无效的对象(该窗口很可能在关闭时解除分配)。为了达到你所需要的,让你的类应用的代表,并实现以下方法:

- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication; 

从这个方法,返回YES

如果您的控制器对象在MainMenu.nib中有一个实例,只需从File's Owner(意味着MainMenu.nob文件中的Application Object)建立连接即可。控制 - 从文件的所有者拖动到您的对象,并连接代理插座。

或者源代码,把这样的事情在你的控制器对象的init方法:

[NSApp setDelegate: self]; 
+0

谢谢!在'NSApplicationDelegate'中没有注意到这个方法。 :) – 2010-10-15 12:35:59

相关问题