UIWebView - 如何禁用操作表(UIActionSheet)?

时间:2010-05-11 05:23:02

标签: iphone objective-c xcode uiwebview

我想知道如何禁用UIActionSheets,特别是在UIWebView中点击并保存超链接后显示的动作表。默认情况下,这些似乎在UIWebViews中启用,其中包含警报标题中相应链接的链接地址。它们也在Safari中启用。

(如何)是否可以在UIWebView中禁用此类所有动作表?

提前致谢!

5 个答案:

答案 0 :(得分:7)

我自己就找到了这个解决方案。将其添加到您的CSS:

body {
  -webkit-touch-callout: none;
}

要清楚,这会禁用按住超链接时显示的操作表

答案 1 :(得分:3)

您也可以通过调用以下方式处理此问题:

document.documentElement.style.webkitTouchCallout = "none";

答案 2 :(得分:2)

 - (void)webViewDidFinishLoad:(UIWebView *)webView
 {
    [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
 }

答案 3 :(得分:0)

dataDetectorTypes属性可能就是您要查找的内容。 如果要禁用该操作表可能性,只需插入代码:

webView.dataDetectorTypes = UIDataDetectorTypeNone;

答案 4 :(得分:0)

您可以在UINavigationController中覆盖presentViewController,并且不执行任何操作。

@implementation CDVInAppBrowserNavigationController : UINavigationController

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0){
    //Do nothing.
}

@end