Cocoa:当窗口不可见时应用程序关闭

时间:2013-02-07 14:22:06

标签: objective-c xcode macos cocoa

我正在用两个窗口创建一个Cocoa应用程序。我想隐藏这两个窗口,调用一些屏幕捕获功能,然后恢复窗口。我用

[mainWindow orderOut:self];

隐藏窗口,但是当我这样做时,整个应用程序关闭。在我的AppDelegate中,我有以下功能:

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

我是否错误地隐藏了窗户?为什么AppDelegate在使用orderOut时认为窗口已关闭?

我的应用程序完美无需使用AppDelegate中的上述方法,我将其添加为最后一步,以便在我实际关闭所有窗口时终止应用程序。任何人都可以建议如何在不关闭应用程序的情况下暂时隐藏我的窗户吗?

2 个答案:

答案 0 :(得分:1)

我忘记了......你能设置一个窗户吗?如果这样可以解决它。

唯一的另一件事是在以编程方式关闭窗口时设置BOOL ... iClosed Windows = YES。然后在恢复窗口时将其设置为NO ...然后在委托方法中检查该bool并相应地返回YES或NO。

答案 1 :(得分:0)

删除方法 applicationShouldTerminateAfterLastWindowClosed 。申请将继续开放。这是OS X上的正常行为。您可以关闭Chrome或Safari的所有窗口,它们将保持打开状态。如果有需要,OS X将关闭它们,就像在iOS上一样。

相关问题