我的程序有两个类,第一个是常规应用程序委托NSObject。第二个是带有CCWindow和WebView的NSWindowController子类,该子类显示应用程序包中的html页面。

这是我从AppDelegate调用窗口的方式:

-(IBAction)showWebViewForm:(id)sender
{
    webViewForm = [[WebViewForm alloc] initWithWindowNibName:@"WebViewForm"];
    [webViewForm showWindow:self];
}


这是我在WebViewForm : NSWindowController中呈现网页的方式:

-(void)awakeFromNib{
    [NSApp activateIgnoringOtherApps:YES];
    [webview setUIDelegate: self];
    [webview setResourceLoadDelegate: self];
    [webview setPolicyDelegate:self];
    [webview setFrameLoadDelegate:self];

    [[webview mainFrame] loadRequest:
     [NSURLRequest requestWithURL:
      [NSURL fileURLWithPath:
       [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"data"]]]];

}


一切正常,但这只是第一次。当我关闭WebViewForm窗口并重新打开它时,网页从WebView中消失了。为什么这样,以及如何解决呢?

UPD即使将awakeFromNib代码嵌入到诸如-(void)refreshWebview的特殊新方法中,然后在[webViewForm refreshWebview]之后立即调用[webViewForm showWindow:self];,仍然-页面仅是第一次加载,这确实很奇怪(有什么想法吗?

最佳答案

我自己弄清楚。问题是,当其父窗口关闭时,webview关闭了。因此,对于这种情况,有一种特殊的方法:

[webview setShouldCloseWithWindow:NO];

10-08 07:46