为了允许用户与链接进行交互,我使用如下代码:
UITextView *t1 = [UITextView new];
[self.view addSubview:t1];
t1.frame = self.view.frame;
t1.font = [UIFont systemFontOfSize:16];
t1.text = @"go to http://apple.com";
t1.dataDetectorTypes = UIDataDetectorTypeLink;
t1.editable = NO;
但是如果我需要设置新文本,它会重用样式:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
t1.text = @"test";
});
将显示“测试”类似链接(蓝色)但没有链接行为(转到链接,上下文菜单)。我没有在文档中找到为什么这是合法的。
据我所知,“修复”的唯一方法是将字体,文字颜色等属性重置为初始值。
答案 0 :(得分:0)
我找到了解决方法:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
t1.dataDetectorTypes = UIDataDetectorTypeNone;
t1.dataDetectorTypes = UIDataDetectorTypeLink;
t1.text = @"another text with http://link.com link";
});
但也许有更多正确/优雅的解决方案。