Swift - 在 TextView 中搜索字符串并使它们加粗



我有一个里面有长文本的UITextField,我需要找到文本中字符串的所有出现并使它们加粗。 我知道我应该使用NSMutableAttributedString使文本加粗,但是如何在文本中搜索特定的子字符串?

您可以创建一个可以在 textView 出口上调用的 textView 扩展:

extension UITextView {    
func makeBold(originalText: String, boldText: String) {
let attributedOriginalText = NSMutableAttributedString(string: originalText)
let boldRange = attributedOriginalText.mutableString.range(of: boldText)
attributedOriginalText.addAttribute(NSAttributedString.Key.font, value: UIFont.boldSystemFont(ofSize: 13), range: boldRange)
self.attributedText = attributedOriginalText
}
}

如何使用:

@IBOutlet weak var textView: UITextView!
textView.makeBold(originalText: "Make bold", boldText: "bold")

最新更新