3

假设我有一个 Webview 在另一个之上,并且我正在内部 Web 视图中加载一个页面。现在我想禁用外部 Webview 的所有用户交互。如何在桌面编程中实现这一点?

这是代码段:

IBOutlet WebView *innerWebView;
IBOutlet WebView *outerWebView;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
   // NSString *path = [[NSBundle mainBundle] pathForResource:@"main" ofType:@"html"];
   // NSURL *url = [NSURL fileURLWithPath:path];
    [[myWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://icicibank.com"]]];
    [outerWebView setDrawsBackground:NO];
    [outerWebView setEditable:NO];

}
- (void)webView:(WebView *)webView decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request newFrameName:(NSString *)frameName decisionListener:(id < WebPolicyDecisionListener >)listener{
    [myWebView setDrawsBackground:NO];
    [myWebView setEditable:NO];
    [outerWebView setDrawsBackground:YES];
    [outerWebView setEditable:YES];
    NSLog(@"hello");
    [[outerWebView mainFrame] loadRequest:request];
    [outerWebView webViewShow:outerWebView];
}

这些是出口。

4

2 回答 2

1

检查此问题的已接受答案:

Cocoa webView - 禁用所有交互

答案谈到了几个用户事件。您可以从WebUIDelegate协议和WebEditingDelegate协议中选择适合您需要的方法。

于 2012-08-15T14:09:25.873 回答
0

将 BODY 中的所有 html 代码放在<div onmousedown="return false"> ... </div>. 这将帮助您避免用户拖动图像,例如...

也添加此方法:

//Disabling the right click menu 
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems {
    return nil;
}
于 2013-11-02T21:43:58.193 回答