使用窗口关闭按钮完全关闭OS X应用程序

时间:2011-11-22 20:11:31

标签: objective-c xcode macos

当用户在运行时使用应用程序关闭文档窗口时,我需要完全关闭我的应用程序。

目前,当他们点击窗口时,应用程序保持打开状态并显示其菜单栏。我在iOS上阅读了这篇文章,并在plist文件中添加了一个条目: http://developer.appcelerator.com/question/40081/ios4---make-app-not-run-in-background

当用户关闭文档窗口时,关闭整个应用程序的最简单方法是什么?

3 个答案:

答案 0 :(得分:44)

这是一款Mac应用吗?如果是,请使用NSApp代理机构applicationShouldTerminateAfterLastWindowClosed:

- (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application
{
    return YES;
}

使用Swift,它将是:

func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
     return true
}

答案 1 :(得分:6)

按下按钮时:

[NSApp terminate:self];

答案 2 :(得分:1)

NSWindowDelegate文件中添加YourWindowController.h,然后在YourWindowController.m文件中添加以下方法:

-(void)windowWillClose:(NSNotification *)notification
{
    // You can use either of the following lines:
    [[NSApplication sharedApplication] terminate:nil];

    // OR
    exit(0);
}

您需要将NSWindowDelegate用于所有窗口。