即使在文本更改为没有任何链接的文本后,UITextView 超链接格式/功能仍然存在
Posted
技术标签:
【中文标题】即使在文本更改为没有任何链接的文本后,UITextView 超链接格式/功能仍然存在【英文标题】:UITextView hyperlink formatting/function remains even after text changed to text without any links 【发布时间】:2015-06-09 16:33:32 【问题描述】:我正在使用 UITextView,它根据用户操作的过程显示不同的文本。有些文本包含超链接,有些则不包含,所以我想保留 UITextView 的默认设置来检测链接。但是,一旦我切换回没有超链接的文本,整个文本字段就会转换为上一个文本中某个链接的超链接。它完全是蓝色的,如果用户单击它,应用程序会打开 Safari 以转到不再存在的链接。在用真正的替换文本替换之前,我尝试将文本设置为 nil,但这没有奏效:
infoLabel.text = nil;
没有这个
infoLabel.text = @"";
当我更改文本时,我还尝试在 UILabel 上显式设置 dataDetector 类型属性,但随后文本颜色为黑色,即使我已将其设置为另一种颜色。因此,如果我这样做,我必须在每次重置数据检测器类型属性时重置文本颜色。相当令人沮丧。这感觉就像一个错误。我错过了什么?
【问题讨论】:
【参考方案1】:你在UITableView
和dequeueReusableCellWithIdentifier:
中使用UITextView
吗?然后你可能会得到一个“旧的” UITextView,你需要将它设置为“恢复默认值”。设置 infoLabel.textColor
和 infoLabel.font
对我有用:
[infoLabel setFont:[UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
[infoLabel.textColor = [UIColor whiteColor];
【讨论】:
不,UITextView 是视图控制器视图的子视图。没有任何类型的单元格,但感谢您的建议。 你可能想看到这个帖子:***.com/questions/19121367/…【参考方案2】:从之前的答案UITextViews in a UITableView link detection bug in ios 7 来看,这似乎是 ios 7 中的一个错误。那里的解决方案对我不起作用,但对我有用的是为每组创建一个新的 UITextView
文本,因为第一组文本总是很好。如果有人有可能发生这种情况的原因(除了错误),我很想知道,因为如果没有这个错误,我仍然无法更新或重置UITextView
。
【讨论】:
以上是关于即使在文本更改为没有任何链接的文本后,UITextView 超链接格式/功能仍然存在的主要内容,如果未能解决你的问题,请参考以下文章