UITextView:在模拟器中工作的链接检测,而不是在设备上

我有两个UITextViews包含数据,应该通过数据检测识别,但是一个工作正常的设备和模拟器有一个只能在模拟器下工作。 我试图从我的设备中捣毁构build,清理产品,删除派生的数据,似乎没有任何东西可以解决不一致的问题。

在Interface Builder中启用链接检测,数据被传入一个NSString stringWithFormat:格式化的string,并使用UITextView setText:设置UITextView setText: NSString stringWithFormat: 对于两者设置相同的方式,所以没有任何区别,但它似乎并没有正确地为其中之一工作。

编辑:在设备上,如果我点击应该检测的项目之一作为一个链接,它会然后变成蓝色,并做链接检测。 我没有设置任何自定义的字体或颜色,可能会有影响。

看来,诀窍是setScrollable:NO。 似乎解决这个问题,但如果你需要滚动,我不知道答案是什么…

显然这个问题是由iOS如何处理UITextView链接引起的。 它创build一个NSAttributedString,将文本的各个部分变成蓝色(当视图包含链接时)。 所以我发现只有当链接是AttributedString中的第一个文本,即文本视图中的第一个文本时,才会发生这个错误。 所以在设置之前,可以通过在文本上加一个空格来解决这个问题。 或者覆盖setText为“”+文本;

希望这可以帮助家伙