可可 - webview关闭和Mac OS上的窗口关闭

时间:2012-11-27 03:18:54

标签: macos cocoa webview nswindow

我通过调用createWebviewWithRequest打开一个新的webview窗口。它开得很好。 但我有一个问题。

当此webview窗口关闭时,我的窗口应用程序也会关闭。 这是我打开新webview窗口的代码

- (WebView*)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
    originRect = appDelegate.window.frame;
    [[webview mainFrame]loadRequest:request];
    return webview;
}

- (void)webViewShow:(WebView *)sender
{
    // set size window app to origin rect
    [appDelegate.window setFrame:originRect display:YES];
}

webview有一个“提交”按钮。当用户单击此按钮时,将关闭webview。

如何在Webview窗口关闭时阻止我的窗口应用程序关闭?

你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我通过在webview UIDelegate的webViewClose中处理来解决了这个问题。 在webViewClose中,我将窗口设为键和前面

请参阅下面的代码:

- (void)webViewClose: (WebView *)wv
{
    [window makeKeyAndOrderFront:wv];
}

当我打电话给它时,它会起作用。

答案 1 :(得分:0)

NSApplication委托(或子类)中的此代码应该正常工作:

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

- 它将允许你打开0个窗口。 您可以将它与您已经提到的解决方案结合使用,但我建议将这4行添加到NSApplication委托/子类中,以便以正确的方式执行操作。