在uitextview中仅检测到第一个链接

时间:2015-02-18 10:40:35

标签: objective-c xcode uitextview datadetectortypes

我在textView中检测到网址有奇怪的问题。我的代码是这样的:

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

我的字符串有很多电话号码和电子邮件要检测,但只使用数据检测,只有第一个电话和第一个电子邮件运行操作。所有手机和电子邮件都会突出显示,但不会点击任何操作。

有没有人有类似的问题? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果它们被突出显示但您无法点击它们,但您可以点击第一个,这通常意味着您还没有想到的另一个视图,而不是翻阅文本。您可以尝试在视图控制器中添加它,以查看要点击的内容。

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

或者在模拟器中运行它,在Debug中打开Color Blended Layers

simulator

或尝试隐藏所有其他视图,直到找到罪犯为止。

另一个问题可能是文本实际上在视图之外,你不能说,因为它不会削减额外的。验证情况并非如此。

[_contactDescription setClipsToBounds:YES];

希望就是这种情况,其中一个帮助找到罪犯。祝你好运。