9
当主(唯一一个)关闭时,如何正确退出Mac OS X应用程序?NSWindow关闭时退出应用程序
我知道那里有一种方法- (void)windowWillClose:(NSNotification *)notification
在NSWindowDelegate
。但它不太适合我的情况,因为它在NSWindow
关闭之前被称为。
当主(唯一一个)关闭时,如何正确退出Mac OS X应用程序?NSWindow关闭时退出应用程序
我知道那里有一种方法- (void)windowWillClose:(NSNotification *)notification
在NSWindowDelegate
。但它不太适合我的情况,因为它在NSWindow
关闭之前被称为。
你不能有windowDidClose
事件,因为伴随它的通知将持有一个无效的对象(该窗口很可能在关闭时解除分配)。为了达到你所需要的,让你的类应用的代表,并实现以下方法:
- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication;
从这个方法,返回YES
。
如果您的控制器对象在MainMenu.nib
中有一个实例,只需从File's Owner(意味着MainMenu.nob文件中的Application Object)建立连接即可。控制 - 从文件的所有者拖动到您的对象,并连接代理插座。
或者源代码,把这样的事情在你的控制器对象的init方法:
[NSApp setDelegate: self];
谢谢!在'NSApplicationDelegate'中没有注意到这个方法。 :) – 2010-10-15 12:35:59