В моей программе есть два класса, первый из них - обычный делегат приложения NSObject
.Второй - это подкласс NSWindowController
с NSWindow и WebView, который показывает 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];
, все же - страница загружается только в первый раз, и это действительно странно (есть идеи?