У меня есть следующий код в контроллере окна как часть одноэлементного специального веб-браузера
+ (id)sharedPurchaseController {
static SomeController *sharedController = nil;
if (!sharedController) {
sharedController = [[SomeController alloc] initWithWindowNibName:@"anXIB"];
}
return sharedController;
}
- (void)awakeFromNib{
shouldReloadWeb = NO;
[progressIndicator startAnimation:nil];
NSString* urlText = [NSString stringWithString:@"http://www.google.com"];
[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlText]]];
}
-(void)windowWillClose:(NSNotification *)notification{
shouldReloadWeb = YES;
}
- (void)windowDidBecomeKey:(NSNotification *)notification{
if (shouldReloadWeb){
WebFrame* aFrame = [webView mainFrame]; //<-- Returns nil second time
[[webView mainFrame] reload];
shouldReloadWeb = NO;
}
}
Проблема в том, что когда NSWindow (браузер) закрывается, а затем снова открывается, на секундувремя [webView mainFrame]
возвращает ноль.NSWindow появляется на экране, но WebView не отвечает.
Если я закомментирую код, который создает синглтон, все будет работать как положено.
Можно ли создать одноэлементный браузер с приложением, сохраняя WebView в Nib?
Спасибо, -Ben