0

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

[mainWindow orderOut:self];

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

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

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

我的应用程序在没有使用上述 AppDelegate 方法的情况下完美运行,我将其添加为最后一步,以在我实际关闭所有窗口时终止应用程序。谁能建议如何在不关闭应用程序的情况下使我的窗口暂时不可见?

4

2 回答 2

1

我忘记了...你能设置一个窗口的可见性吗?如果是这样,那将解决它。

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

于 2013-02-07T14:47:37.910 回答
0

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

于 2013-02-09T21:07:39.887 回答