3

我的应用程序是一个 ios phonegap 应用程序。我想从 Web 视图的文本字段中禁用复制和粘贴菜单。在长按和双击时,会显示复制粘贴菜单。我尝试使用 UIGestureRecognizer 类禁用长按和双击:

- (void)viewDidLoad{
UILongPressGestureRecognizer* longPressGesture = [[UILongPressGestureRecognizer alloc]     initWithTarget:self action:@selector(gestureHandler:)];
[longPressGesture setMinimumPressDuration:0.2];
longPressGesture.delegate = self;
[self.webView addGestureRecognizer:longPressGesture];
}

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer    shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer   *)otherGestureRecognizer
{
    if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
    return  NO;
    }
    else if([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]){
    return  NO;
    }
    else
        return YES;
}

但我无法为双击禁用它。有相同查询的人吗?帮帮我...

4

3 回答 3

5

好吧,您必须为 UIWebView 编写一个覆盖 canPerformAction 方法的类别,

@implementation UIWebView (DisableCopyPaste)

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
        [UIMenuController sharedMenuController].menuVisible = NO;
    }
    return NO;
}

@end

在 xcode 项目文件夹中找到的 .pch 文件中导入此类别,设置断点以测试长按事件是否触发此方法。

仅供参考,此方法可能会被多次调用,不要担心它是针对用户长按的特定 UI 组件可用的选项列表。

要创建类别,请按照以下步骤操作。

在 Xcode 中单击项目解决方案浏览器底部的添加按钮。

在此处输入图像描述

接下来在选项中选择Objective C Category。

在此处输入图像描述

Next 选择 UIWebView 或在文本框的类别中输入 UIWebView 并为类别命名 在此处输入图像描述

单击下一步并将类别保存到您的项目位置并复制粘贴上述功能。瞧!

要在 HTML 中的文本输入中禁用复制粘贴或其他选项,请参阅

于 2013-10-21T13:44:04.057 回答
1
  Use below code.
  <style type="text/css">
    *:not(input):not(textarea) {
       -webkit-user-select: none; /* disable selection/Copy of UIWebView */
       -webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */
    }       
  </style>

  If you want Disable only anchor button tag use this.
   a {-webkit-user-select: none; /* disable selection/Copy of UIWebView */
      -webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */
  }
于 2014-08-21T09:58:17.897 回答
1

在您的网页正文或页面上添加以下 css 以禁用 UIWebView 的选择/复制

.ui-page 
{ 
   -webkit-touch-callout: none; 
   -webkit-user-select: none; 
}
于 2013-10-21T13:49:05.417 回答