【问题标题】:Quit app when NSWindow closesNSWindow 关闭时退出应用
【发布时间】:2010-10-15 11:53:32
【问题描述】:

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

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

【问题讨论】:

    标签: macos nswindow


    【解决方案1】:

    您不能有windowDidClose 事件,因为伴随它的通知将持有一个无效对象(窗口很可能在关闭时被释放)。为了实现您的需要,让您的类成为应用程序的委托,并实现以下方法:

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

    从该方法返回YES

    如果您的控制器对象在MainMenu.nib 中有一个实例,只需从文件所有者(即 MainMenu.nob 文件中的应用程序对象)建立连接。从 File's Owner 控制并拖动到您的对象,然后连接代理出口。

    或者在源代码中,在控制器对象的 init 方法中添加这样的内容:

    [NSApp setDelegate: self];
    

    【讨论】:

    • 谢谢!在NSApplicationDelegate 中没有注意到这个方法。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    相关资源
    最近更新 更多