【问题标题】:How do I quit a mac application programmatically?如何以编程方式退出 mac 应用程序?
【发布时间】:2011-10-22 18:53:54
【问题描述】:

我需要向从 mac 菜单栏运行的应用程序添加退出按钮。 如何在 mac 中以编程方式退出应用程序?

【问题讨论】:

    标签: objective-c cocoa macos


    【解决方案1】:

    在某些情况下,您在调用[NSApp terminate:self]; 时无法关闭应用程序。就像在文档窗口 (NSAlert -beginSheetModalForWindow:completionHandler:) 上将 NSAlert 显示为工作表时一样...

    您可以在呼叫终止前关闭所有窗口和警报,如以下代码:

    for (NSWindow *window in [NSApplication sharedApplication].windows) {
        [window close];
    }
    [NSApp terminate:self];
    

    【讨论】:

    • NSWindow 实例windowsNSApplication 属性还能返回什么?
    • @vadian 哦,是的,你是对的 windows 只是返回 NSWindow。我将编辑代码
    【解决方案2】:

    有一种更简单的形式可以从代码中退出:

    [NSApp terminate:self];
    

    但是当您添加一个按钮时,您所要做的就是控制从您的按钮拖动到应用程序图标并连接方法terminate:

    【讨论】:

    • 我将在代码中添加我的按钮,但也感谢您提供替代解决方案。
    • 只是好奇,这个答案指的是什么IDE?
    • 请注意,在较新版本的 Xcode 中,您应该在按钮和文件所有者占位符之间创建一个出口,而不是应用程序。
    【解决方案3】:

    尝试以下方法:

    [NSApp terminate: nil];
    

    【讨论】:

      【解决方案4】:
      [[NSApplication sharedApplication] terminate:self];
      

      【讨论】:

      • 这和[NSApp terminate:self];有什么区别?
      • 没有区别,NSApp[NSApplication sharedApplication]一样。
      • 哇,真快!谢谢!
      猜你喜欢
      • 2023-03-29
      • 2011-09-13
      • 2017-12-19
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多