use*_*299 3 webview ios long-press cordova
我的应用程序是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;
}
Run Code Online (Sandbox Code Playgroud)
但我无法禁用双击.任何人具有相同的查询?帮帮我...
那么你必须为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
Run Code Online (Sandbox Code Playgroud)
在xcode项目文件夹中找到的.pch文件中导入此类别,设置断点以测试长按事件是否触发此方法.
FYI这种方法可称为很多次,不要担心,这是对的可供用户长按特定的UI组件选项列表.
要创建类别,请按照以下步骤操作.
单击Xcode中项目解决方案浏览器底部的添加按钮.

下一步在选项中选择Objective C Category.

下一步选择UIWebView或在文本框的类别中键入UIWebView,并为该类别指定任何名称

单击"下一步"并将类别保存到项目位置,然后复制粘贴上述功能.瞧!
要在HTML中放置的文本输入中禁用复制粘贴或其他选项,请参阅此处.
| 归档时间: |
|
| 查看次数: |
2755 次 |
| 最近记录: |