【问题标题】:Only first link is detected in uitextview在 uitextview 中仅检测到第一个链接
【发布时间】:2015-02-18 10:40:35
【问题描述】:

我在 textView 中的 url 检测有一个奇怪的问题。我的代码是这样的:

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

我的字符串有很多电话号码和电子邮件要检测,但使用数据检测仅第一部电话和第一封电子邮件在点击时运行操作。所有电话和电子邮件都突出显示,但没有任何操作。

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

【问题讨论】:

    标签: objective-c xcode uitextview datadetectortypes


    【解决方案1】:

    如果它们被突出显示但您无法单击它们,但您可以单击第一个,这通常意味着在重叠文本时存在您没想到的另一个视图。您可以尝试在您的视图控制器中添加它以查看被点击的内容。

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

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

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

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

    [_contactDescription setClipsToBounds:YES];
    

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

    【讨论】:

    • 模拟器中颜色混合图层的技巧帮助我找到了解决方案。谢谢。
    • @Nizzre 颜色混合图层在过去让我头疼不已。很高兴我能提供帮助:)
    猜你喜欢
    • 1970-01-01
    • 2016-07-07
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多