【问题标题】:Cocoa - webview close and window close on Mac osCocoa - Mac 操作系统上的 webview 关闭和窗口关闭
【发布时间】:2012-11-27 03:18:54
【问题描述】:

我通过调用 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 窗口关闭时我的窗口应用程序没有关闭?

你有什么想法吗?

【问题讨论】:

    标签: macos cocoa webview nswindow


    【解决方案1】:

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

    在下面查看我的代码:

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

    当我调用它时,它会起作用。

    【讨论】:

      【解决方案2】:

      您的 NSApplication 委托(或子类)中的这段代码应该可以正常工作:

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

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

      【讨论】:

        猜你喜欢
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-31
        • 2021-04-28
        • 2012-05-07
        • 2014-01-28
        相关资源
        最近更新 更多