【发布时间】:2021-06-10 22:18:45
【问题描述】:
我在 SO 上的帖子中有这段代码,我找不到原始链接,所以我深表歉意。
基本上,这段代码适用于我需要在 UITextView 中执行的所有操作,多个链接带有下划线。但是,当我尝试添加 Bold 属性时,我无法让它工作。
import UIKit
extension UITextView {
func buildLink(originalText: String, hyperLinks: [String: String]) {
let style = NSMutableParagraphStyle()
style.alignment = .left
let attributedOriginalText = NSMutableAttributedString(string: originalText)
for (hyperLink, urlString) in hyperLinks {
let linkRange = attributedOriginalText.mutableString.range(of: hyperLink)
let fullRange = NSRange(location: 0, length: attributedOriginalText.length)
attributedOriginalText.addAttribute(.font, value: UIFont(name: "RobotoCondensed-Bold", size: 12.0)!, range: linkRange) /// this is the non functioning line
attributedOriginalText.addAttribute(NSAttributedString.Key.link, value: urlString, range: linkRange)
attributedOriginalText.addAttribute(NSAttributedString.Key.paragraphStyle, value: style, range: fullRange)
attributedOriginalText.addAttribute(NSAttributedString.Key.font, value: UIFont(name: "RobotoCondensed-Regular", size 12.0)!, range: fullRange)
attributedOriginalText.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.darkText, range: fullRange)
}
self.linkTextAttributes = [
NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue
]
self.attributedText = attributedOriginalText
}
}
如果我也将粗体属性放在 linkTextAttributes 数组中,它也不起作用。
在这个问题上摸不着头脑。
【问题讨论】:
标签: swift xcode hyperlink uitextview nsattributedstring