即使文本更改为没有任何链接的文本,UITextView 超链接 formatting/function 仍然存在
UITextView hyperlink formatting/function remains even after text changed to text without any links
我使用的 UITextView 会根据用户操作的过程显示不同的文本。有些文本包含 hyperlinks 而有些不包含,所以我想保留 UITextView 的默认设置来检测 links。但是,一旦我切换回没有 hyperlink 的文本,整个文本字段将转换为 hyperlink,其中某些 link 来自之前的文本。它完全是蓝色的,如果用户单击它,应用程序将打开 Safari 以转到不再存在的 link。在用真正的替换文本替换之前,我尝试将文本设置为 nil,但这没有用:
infoLabel.text = nil;
这个也没有
infoLabel.text = @"";
我还尝试在更改文本时在 UILabel 上显式设置 dataDetector 类型 属性,但是即使我已将其设置为另一种颜色,文本颜色仍为黑色。因此,如果我这样做,每次重置数据检测器类型时都必须重置文本颜色 属性。相当令人沮丧。这感觉就像一个错误。我错过了什么?
你在 UITableView
和 dequeueReusableCellWithIdentifier:
中使用 UITextView
吗?然后你可能会得到一个 "old" UITextView,你需要设置 "back to default"。设置 infoLabel.textColor
和 infoLabel.font
对我有用:
[infoLabel setFont:[UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
[infoLabel.textColor = [UIColor whiteColor];
根据之前的回答 UITextViews in a UITableView link detection bug in iOS 7,这似乎是 ios 7 中的一个错误。那里的解决方案对我不起作用,但对我有用的是创建一个每组文本的新 UITextView
,因为第一组文本总是没问题。如果有人知道为什么会发生这种情况(除了 bug),我很想知道,因为如果没有这个 bug,我仍然无法更新或重置 UITextView
。
我使用的 UITextView 会根据用户操作的过程显示不同的文本。有些文本包含 hyperlinks 而有些不包含,所以我想保留 UITextView 的默认设置来检测 links。但是,一旦我切换回没有 hyperlink 的文本,整个文本字段将转换为 hyperlink,其中某些 link 来自之前的文本。它完全是蓝色的,如果用户单击它,应用程序将打开 Safari 以转到不再存在的 link。在用真正的替换文本替换之前,我尝试将文本设置为 nil,但这没有用:
infoLabel.text = nil;
这个也没有
infoLabel.text = @"";
我还尝试在更改文本时在 UILabel 上显式设置 dataDetector 类型 属性,但是即使我已将其设置为另一种颜色,文本颜色仍为黑色。因此,如果我这样做,每次重置数据检测器类型时都必须重置文本颜色 属性。相当令人沮丧。这感觉就像一个错误。我错过了什么?
你在 UITableView
和 dequeueReusableCellWithIdentifier:
中使用 UITextView
吗?然后你可能会得到一个 "old" UITextView,你需要设置 "back to default"。设置 infoLabel.textColor
和 infoLabel.font
对我有用:
[infoLabel setFont:[UIFont preferredFontForTextStyle:UIFontTextStyleBody]];
[infoLabel.textColor = [UIColor whiteColor];
根据之前的回答 UITextViews in a UITableView link detection bug in iOS 7,这似乎是 ios 7 中的一个错误。那里的解决方案对我不起作用,但对我有用的是创建一个每组文本的新 UITextView
,因为第一组文本总是没问题。如果有人知道为什么会发生这种情况(除了 bug),我很想知道,因为如果没有这个 bug,我仍然无法更新或重置 UITextView
。