单击时UITextView不打开URL

时间:2015-08-21 18:17:41

标签: ios objective-c uitextview

我有一个a&b + a-b ,里面有一个属性字符串,其中包含一个URL。属性字符串正在转换为链接,但是当您按下链接时会出现错误:

  

未知DDResult类别1的结果;找不到网址www.myurl.com

的任何操作

这是我的代码:

UITextView

我正在使用NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:NSLocalizedString(@"My Text", nil)]; NSRange range = [str.mutableString rangeOfString:@"www.myurl.com" options:NSCaseInsensitiveSearch]; if (range.location != NSNotFound) { [str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"CourierPrime-Bold" size:15] range:NSMakeRange(0, range.location)]; [str addAttribute:NSLinkAttributeName value:[NSURL URLWithString:@"www.myurl.com"] range:range]; [str addAttribute:NSForegroundColorAttributeName value:[UIColor brownColor] range:range]; } self.welcomeText.editable = NO; self.welcomeText.attributedText = str; //As a note, I have tried this with the value 0 and UIDataDetectorTypeLink //and neither option worked. self.welcomeText.dataDetectorTypes = UIDataDetectorTypeAll; 并在我启用了XIB的行为选项中,并且在检测选项中,我选择了selectable

我希望在可能的情况下在手机移动浏览器中打开链接,而不是创建webview。

2 个答案:

答案 0 :(得分:6)

网址需要一个方案。

此:

[str addAttribute:NSLinkAttributeName value:[NSURL URLWithString:@"www.myurl.com"] range:range];

需要:

[str addAttribute:NSLinkAttributeName value:[NSURL URLWithString:@"http://www.myurl.com"] range:range];

答案 1 :(得分:0)

URL必须安全

IOS不允许您将用户重定向到不安全的链接,因此请提供带有 https

的链接

,并使用 Swift

使特定的字符串在UITextView中可点击

您可以执行以下操作:

let link = "https://www.google.com"
let range = (text as NSString).range(of: link)
attribute.addAttributes([NSAttributedStringKey.link: link], range: range)