如何检测UIWebView何时开始选择文本
how to detect when UIWebView starts selecting text?
我有一个UIWebView
,它通过控制器显示静态内容并对各种滑动手势做出反应。
文本选择已被禁用,但现在我正在开发一个新功能,允许文本选择并显示自定义上下文菜单。
现在我需要能够检测文本选择何时处于活动状态,以便关闭滑动手势。
我能想到的唯一方法是检查在滑动处理程序方法中是否有使用JS选择的文本。还有其他想法吗?有人知道如何做得更好吗?
谢谢。
当用户选择文本时,菜单ViewController将显示。。您可以通过在viewController 上添加通知来检测
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuShown) name:UIMenuControllerDidShowMenuNotification object:nil];
检测菜单隐藏的情况相同。
您可以使用"长按手势识别器"绑定到UIWebView。您可以将其校准为用户在选择文本之前按住文本所需的时间。
我最终使用以下方法禁用和启用了使用Rangy库的手势识别器。效果很好。
- (BOOL) isSelectionActive
{
NSString * resultStr = [self.contentView stringByEvaluatingJavaScriptFromString:
@"rangy.getSelection().isCollapsed"];
NSLog(@"resultStr: %@", resultStr );
if ([resultStr isEqualToString:@"true"]) {
return NO;
}
else {
return YES;
}
}
相关文章:
- 如何添加类,同时开始在文本字段中输入文本
- 浏览器何时记录历史记录
- 为什么要对define.md和module.exports进行条件检查,以及条件何时通过
- 让javascript知道epub3电子书中何时播放媒体覆盖
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 如何判断何时将dom节点添加到文档中
- ng模型内的ng重复的ng重复开始
- 知道何时从UIWebView中开始播放YouTube视频
- Twitter Bootstrap - 如何检测媒体查询何时开始
- 如何查找部分加载何时开始和结束
- 如何检测UIWebView何时开始选择文本
- 如何检查文档何时开始加载,document.readyState未更新
- 检测iframe何时开始加载新URL
- 浏览器的事件循环何时开始?
- Youtube检测视频何时开始播放
- Javascript闪烁背景颜色:何时停止闪烁,何时开始闪烁
- 如何检测iframe页面何时开始加载?
- 检测输入何时开始/结束聚焦
- 检测移动Safari何时因为第二个视频开始而停止播放视频
- 如何通过JavaScript知道用户何时开始或停止视频