我有一个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。
答案 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)