4

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

在 Interface Builder 中启用了链接检测,数据使用NSString stringWithFormat:格式化的字符串传入并使用UITextView setText:. 为两者设置相同的方式,因此没有区别,但对于其中一个似乎无法正常工作。

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

4

2 回答 2

6

看来诀窍是 setScrollable:NO。似乎解决了这个问题,虽然如果你需要滚动,我不确定答案是什么......

于 2013-10-23T06:08:11.537 回答
1

显然这个问题是由 iOS 当前处理 UITextView 链接的方式引起的。它正在创建一个 NSAttributedString 将文本部分变为蓝色(当视图包含链接时)。所以我发现这个错误只发生在链接是 AttributedString 中的第一个文本时,即文本视图中的第一个文本。因此,可以通过在设置文本之前在文本前面添加空格来轻松修复它。或者将 setText 覆盖为 " " + text;

希望这对大家有帮助

于 2014-03-17T15:02:03.713 回答