2016-05-03 3 views
1

Когда я загрузке HTML страницу, которая содержит ModalDialog в WebView, нет всплывающее окно не открывается при all.That же HTML страница работает без проблем в Safari .so каждый может решить?Как включить MODALDIALOG в какао WebView

Вот код:

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request{ 
NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300) styleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask backing:NSBackingStoreBuffered defer:YES]; 
[window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; 
WebView *webView = [[WebView alloc] init]; 
[webView setFrameLoadDelegate:self]; 
window.contentView = webView; 
[webView.mainFrame loadRequest:request]; 
[window makeKeyAndOrderFront:webView]; 
return webView; 
} 

- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request{ 
return [self webView:sender createWebViewWithRequest:request]; 
} 

- (void)webViewRunModal:(WebView *)sender{ 
[sender.window makeKeyAndOrderFront:sender]; 
} 

- (void)webViewShow:(WebView *)sender{ 
[sender.window makeKeyAndOrderFront:sender]; 
} 

- (void)webViewClose:(WebView *)sender{ 

[sender.window close]; 

} 
+0

Найдена аналогичная нить в этой ссылке [] (http://stackoverflow.com/questions/4164407/using-webview-in-a-modal- NSWindow-не-работает). Просьба проверить, исправлено ли решение, предложенное в этой теме, вашей проблеме. – Marimuthu

+0

Спасибо, эта ссылка дает мне некоторые идеи для ее решения. И вот код – ShaneFang

ответ

0
#pragma -mark -WebView Delegate 

- (WebView *)webView:(WebView *)sender createWebViewWithRequest: (NSURLRequest *)request{ 
NSUInteger windowStyleMask = NSClosableWindowMask|NSMiniaturizableWindowMask|NSTitledWindowMask; 
_webWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300) styleMask:windowStyleMask backing:NSBackingStoreNonretained defer:YES]; 
[_webWindow setReleasedWhenClosed:NO]; 
WebView* newWebView = [[WebView alloc] initWithFrame:[_webWindow contentRectForFrameRect:_webWindow.frame]]; 
[newWebView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; 
[[newWebView mainFrame] loadRequest:request]; 
[_webWindow setContentView:newWebView]; 
[_webWindow center]; 
[_webWindow makeKeyAndOrderFront:nil]; 

return newWebView; 

} 


- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request{ 

return [self webView:sender createWebViewWithRequest:request]; 
} 


- (void)webViewRunModal:(WebView *)sender{ 

[sender.window makeKeyAndOrderFront:self]; 

} 

- (void)webViewShow:(WebView *)sender{ 

[sender.window makeKeyAndOrderFront:self]; 

} 

- (void)webViewClose:(WebView *)sender{ 
[sender.window close]; 
} 
Смежные вопросы