NSWindow关闭时退出应用程序

时间:2010-10-15 11:53:32

标签: macos nswindow

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

我知道- (void)windowWillClose:(NSNotification *)notification中有一个方法NSWindowDelegate。但它在我的情况下并不合适,因为它在 NSWindow关闭之前被称为

1 个答案:

答案 0 :(得分:28)

您不能拥有windowDidClose事件,因为随附的通知将持有无效对象(窗口很可能在关闭时已取消分配)。要实现您的需要,请将您的类作为Application的委托,并实现以下方法:

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

从该方法返回YES

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

或者在源代码中,在控制器对象的init方法中输入类似的内容:

[NSApp setDelegate: self];