即使在文本更改为没有任何链接的文本后,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】:

你在UITableViewdequeueReusableCellWithIdentifier: 中使用UITextView 吗?然后你可能会得到一个“旧的” UITextView,你需要将它设置为“恢复默认值”。设置 infoLabel.textColorinfoLabel.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 超链接格式/功能仍然存在的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将焦点从一个文本字段更改为下一个文本字段

与编辑文本输入类型相关的问题

在编辑超链接单击时将标签更改为文本框

如何将链接文本更改为 HTML 中的图像

更改为多行后文本输入失去焦点

将java文本更改为pdf然后打印它