Swift - 在 TextView 中搜索字符串并将其设为粗体

Swift - search strings in TextView and make them bold

我有一个 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")