我的程序有两个类,第一个是常规应用程序委托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];