如何在UIWebView中禁用长触摸?

时间:2010-11-30 13:20:26

标签: uiwebview uiwindow uiwebviewdelegate

我想禁用应用程序中的长按。我无法控制我在WebView上加载的HTML。

4 个答案:

答案 0 :(得分:53)

webViewDidFinishLoad委托中,我在加载的html页面上运行javascript,禁用长按。

[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];

答案 1 :(得分:4)

不再支持UIWebView。因此,您应该实现WKWebView,并且有一个名为 allowsLinkPreview 的属性,您可以启用或禁用长按预览。

{{1}}

答案 2 :(得分:1)

您可以尝试从视图控制器覆盖以下方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

通过这种方式,您可以使用自己的实现替换常用的触摸管理。

答案 3 :(得分:-6)

在Interface Builder中打开您的视图,单击Web视图,然后取消选中属性检查器中的“User Interaction Enabled”复选框。

如果您想在代码中执行此操作,请将网络视图的userInteractionEnabled属性设置为NO