在 uitextview 中仅检测到第一个 link

Only first link is detected in uitextview

我在 textView 中检测 url 时遇到奇怪的问题。我的代码是这样的:

_contactDescription.dataDetectorTypes = UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
[_contactDescription setUserInteractionEnabled:YES];
[_contactDescription setSelectable:YES];
[_contactDescription setEditable:NO];
_contactDescription.delegate = self;
_contactDescription.text = desc;

我的字符串有很多 phone 号码和电子邮件需要检测,但仅首先使用数据检测 phone 和第一封电子邮件 运行 操作。所有 phone 的信息和电子邮件都突出显示,但没有点击操作。

有没有人遇到过类似的问题? 提前致谢。

如果它们突出显示但您无法单击它们,但您可以单击第一个,这通常意味着您没有预料到的另一个视图会覆盖文本。您可以尝试在您的视图控制器中添加它以查看正在点击的内容。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    for (UITouch * touch in [touches allObjects])
    {
        NSLog(@"View: %@", touch.view);
    }
}

或者运行它在模拟器中并在调试中打开颜色混合层

或者尝试隐藏所有其他视图,直到找到违规者。

另一个问题可能是文本实际上在视图之外,您无法分辨,因为它没有剪掉额外的部分。验证事实并非如此。

[_contactDescription setClipsToBounds:YES];

希望情况确实如此,其中之一有助于找到罪犯。祝你好运。