首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UITextview中禁用放大镜,但不禁用URL链接和电话号码事件

在UITextview中禁用放大镜,但不禁用URL链接和电话号码事件
EN

Stack Overflow用户
提问于 2015-10-07 17:40:41
回答 3查看 702关注 0票数 1

我对iOS9中的UITextview有一个问题,当我在textview上长按时,它会显示放大镜。我尝试通过UILongPressGestureRecognizer禁用,它也完全禁用链接和手机触摸事件。

如何仅禁用放大镜。

代码语言:javascript
复制
 override func addGestureRecognizer(gestureRecognizer: UIGestureRecognizer) {
    if gestureRecognizer .isKindOfClass(UILongPressGestureRecognizer){
    gestureRecognizer.enabled = false
    }
    super.addGestureRecognizer(gestureRecognizer)
}

文本视图将位于集合视图单元格中。

EN

回答 3

Stack Overflow用户

发布于 2018-04-06 10:56:25

有一种方法可以实现这一点。只需覆盖UITextViewgestureRecognizerShouldBegin即可。这个手势识别器对象即将开始处理触摸,以确定其手势是否正在发生。唯一棘手的部分是正确识别分配给放大镜激活的委托。

我已经成功地使用UITextGestureClusterLoupe进行了测试。以下是工作示例(Swift 4):

代码语言:javascript
复制
override public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool
{
    if let gestureDelegate = gestureRecognizer.delegate {

        if(gestureDelegate.description.localizedCaseInsensitiveContains("UITextGestureClusterLoupe"))
        {
            return false;
        }
    }
    return true;
}
票数 4
EN

Stack Overflow用户

发布于 2015-10-07 18:41:34

代码看起来是正确的,但您需要覆盖textView的gestureRecognizer,而不是超类。将super.addGestureRecognizer(gestureRecognizer)更改为yourTextView.addGestureRecognizer(gestureRecognizer),并将其放在包含文本视图出口的视图控制器中(如果还没有的话)。

票数 0
EN

Stack Overflow用户

发布于 2019-03-17 16:36:14

根据Vlada的回复,对于我的代码,我发现分配给放大镜激活的委托是"UITextLoupeInteraction“

下面是我的代码:

代码语言:javascript
复制
open override func gestureRecognizerShouldBegin(_ gestureRecognizer:  UIGestureRecognizer) -> Bool {
    if let gestureDelegate = gestureRecognizer.delegate {
        print(gestureDelegate.description)
        if(gestureDelegate.description.localizedCaseInsensitiveContains("_UIKeyboardBasedTextSelectionInteraction")){
            return false
        }

        if(gestureDelegate.description.localizedCaseInsensitiveContains("UITextLoupeInteraction")){
            return false
        }

    }
    return true
}

我的开发环境: swift4、Xcode10.1、iOS 12.1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32988898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档