即使文本更改为文本而没有任何链接,UITextView超链接格式/功能仍然保留

时间:2015-06-09 16:33:33

标签: ios uitextview

我正在使用UITextView,根据用户操作的过程显示不同的文本。有些文本包含超链接,有些没有,所以我想保留UITextView的默认设置来检测链接。但是,一旦我切换回没有超链接的文本,整个文本字段将转换为来自前一文本的某些链接的超链接。它完全是蓝色的,如果用户点击它,应用程序会打开Safari以转到不再存在的链接。我已经尝试将文本设置为nil,然后替换为真正的替换文本,但这没有用:

infoLabel.text = nil;

没有这个

infoLabel.text = @"";

此外,我在更改文本时尝试在UILabel上显式设置dataDetector类型属性,但即使我已将其设置为其他颜色,文本颜色仍为黑色。因此,如果我这样做,每次重置数据检测器类型属性时都必须重置文本颜色。相当令人沮丧。这感觉就像一个bug。我错过了什么?

2 个答案:

答案 0 :(得分:0)

您是否使用UITextViewUITableView内的dequeueReusableCellWithIdentifier:?然后你可能会得到一个“旧的”UITextView,你需要设置“恢复默认值”。设置infoLabel.textColorinfoLabel.font为我工作:

 [infoLabel setFont:[UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
 [infoLabel.textColor = [UIColor whiteColor];

答案 1 :(得分:0)

从上一个答案UITextViews in a UITableView link detection bug in iOS 7开始,这似乎是ios 7中的一个错误。那里的解决方案对我不起作用,但对我有用的是创建一个新的UITextView对于每组文本,因为第一组文本总是很好。如果某人有原因(除了bug)之所以可能发生这种情况,我很想知道,因为我仍然无法在没有此错误的情况下更新或重置UITextView