ios - 如何在 UITextView 中禁用放大

标签 ios objective-c uitextview magnification nsdatadetector

我想摆脱 UITextView 中的放大和文本选择,但我需要电话号码、链接和地址检测器。我正在使用

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer {
    if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
        gestureRecognizer.enabled = NO;
    }
    [super addGestureRecognizer:gestureRecognizer];
    return;}

停止放大,但它也会停止 TextView 检测到的选择电话号码/地址/链接。 如果我执行 [_txtView setSelectable:NO]; 它会停止放大和文本选择以及数据检测。

最佳答案

经过相当长时间的尝试,我设法通过重写 UITextView 子类上的 addGestureRecognizer 来停止文本选择、放大和保持数据检测(链接可点击等),只允许 UILongPressGestureRecognizer 延迟触摸结束:

UIUnselectableTextView.m

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
    if([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] && gestureRecognizer.delaysTouchesEnded)
    {
        [super addGestureRecognizer:gestureRecognizer];
    }
}

关于ios - 如何在 UITextView 中禁用放大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823154/

相关文章:

ios - Swift - 关闭并再次打开 View 后数组总是重置

ios - 使用 RestKit 序列化带有子对象的对象 [POSTing]

ios - 如何知道用户是否从 iPhone 设置中删除了我的自定义键盘?

objective-c - 计算数组属性的内存语义?

objective-c - 为什么我在标签栏点击时出现构建错误?

swift - UITextfield 使用插入在 UITableView 中显示空行

ios - self 和下划线之间访问 objective-c 中的属性的区别?

objective-c - 抑制 "Method definition for %@ not found"

swift - UITextview 选中的文本

xcode - 如何知道何时将文本粘贴到 UITextView 中