iOS 中带有 NSAttributedText 的 UILabel 中的超链接未突出显示
hyperlink not highlighted in UILabel with NSAttributedText in iOS
我正在显示带有属性文本的标签。该标签包含一些 hyper links。
我知道这些只能在 textView 中单击,但是我认为它们会在具有 NSAttributedText 的 UILabel 中显示为蓝色并带有下划线。
在我的例子中,link 与其他文本没有任何不同(不是蓝色或下划线)。我需要更改 UILabel 的任何 属性 以使 link 在 UILabel 中显示为蓝色吗?
let style = NSMutableParagraphStyle()
style.lineBreakMode = NSLineBreakMode.ByWordWrapping
let attributes = [NSFontAttributeName: self.defaultFont(), NSParagraphStyleAttributeName: style]
let attributedString = NSAttributedString(string: "www.somelink.com", attributes: attributes)
label.attributedText = attributedString
您需要像这样向 NSAttributedString
添加 NSLinkAttributeName
属性:
attributedString.addAttribute(NSLinkAttributeName, value: "www.somelink.com", range: attributedString.string.rangeOfString("www.somelink.com"))
请检查您需要的范围。
您需要 NSLinkAttributeName。以上答案应该有效。
let style = NSMutableParagraphStyle()
style.lineBreakMode = NSLineBreakMode.ByWordWrapping
let attributes = [NSFontAttributeName: self.defaultFont(), NSParagraphStyleAttributeName: style]
let attributedString.addAttribute(NSLinkAttributeName, value: "www.somelink.com", range: attributedString.string.rangeOfString("www.somelink.com"))
label.attributedText = attributedString
我正在显示带有属性文本的标签。该标签包含一些 hyper links。 我知道这些只能在 textView 中单击,但是我认为它们会在具有 NSAttributedText 的 UILabel 中显示为蓝色并带有下划线。
在我的例子中,link 与其他文本没有任何不同(不是蓝色或下划线)。我需要更改 UILabel 的任何 属性 以使 link 在 UILabel 中显示为蓝色吗?
let style = NSMutableParagraphStyle()
style.lineBreakMode = NSLineBreakMode.ByWordWrapping
let attributes = [NSFontAttributeName: self.defaultFont(), NSParagraphStyleAttributeName: style]
let attributedString = NSAttributedString(string: "www.somelink.com", attributes: attributes)
label.attributedText = attributedString
您需要像这样向 NSAttributedString
添加 NSLinkAttributeName
属性:
attributedString.addAttribute(NSLinkAttributeName, value: "www.somelink.com", range: attributedString.string.rangeOfString("www.somelink.com"))
请检查您需要的范围。
您需要 NSLinkAttributeName。以上答案应该有效。
let style = NSMutableParagraphStyle()
style.lineBreakMode = NSLineBreakMode.ByWordWrapping
let attributes = [NSFontAttributeName: self.defaultFont(), NSParagraphStyleAttributeName: style]
let attributedString.addAttribute(NSLinkAttributeName, value: "www.somelink.com", range: attributedString.string.rangeOfString("www.somelink.com"))
label.attributedText = attributedString