【问题标题】:How to quit cocoa app when windows close? [duplicate]windows关闭时如何退出可可应用程序? [复制]
【发布时间】:2012-09-12 11:07:37
【问题描述】:

点击左上角红色按钮需要退出Cocoa App。

我发现this页面说

所以你首先需要做的是让你想关闭的窗口是 连接到笔尖中的 IBOutlet。对于这个例子,我连接了 窗口到名为“mainWindow”的插座。

我该怎么做?我在 xib 文件中找到了 Windows,但是如何将它连接到 nib 中的 IBOutlet?

或者,有什么办法可以让可可应用点击红色按钮退出?

编辑

我应该把代码放在automatically generated delegate file

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    应用程序的委托有一个可选方法,它会自动执行此操作。您所要做的就是将其添加到实现中。你不需要创建一个插座或任何东西。

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

    【讨论】:

    • 我试过了,还是不行。我想这是因为我的主窗口不是 NSWindowCoontroller (recursive-design.com/blog/2007/04/13/…) 的子类。
    • 它确实有效,但你可能把代码放错了地方。确保它在您的应用程序的委托中。
    • "如果你的实现返回NO,控制返回到主事件循环并且应用程序没有被终止。如果你返回YES,你的委托的applicationShouldTerminate:方法随后被调用以确认应用程序应该被终止。”
    • 工作太棒了!简直不敢相信:)
    • 只想给swift3版本:func applicationShouldTerminateAfterLastWindowClosed (_ theApplication: NSApplication) -> Bool { return true }
    【解决方案2】:

    看看 NSApplicationDelegate 协议,尤其是applicationShouldTerminateAfterLastWindowClosed:method...

    http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多