【问题标题】:Swift - search strings in TextView and make them bold [closed]Swift - 在 TextView 中搜索字符串并使它们变为粗体 [关闭]
【发布时间】:2020-01-04 10:02:40
【问题描述】:

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

【问题讨论】:

标签: ios swift uitextfield nsmutableattributedstring


【解决方案1】:

您可以创建一个可以在您的 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")

【讨论】:

  • 效果很好,非常感谢有没有办法只出现完整的单词?使用此解决方案,如果我搜索“我”,作品中的值也会变粗(例如,怜悯“我”变粗,但在这种情况下应该避免)
  • 查看此答案中的示例并记下您的应用程序的 cmets stackoverflow.com/a/7033787/4844273
猜你喜欢
  • 1970-01-01
  • 2015-04-14
  • 2013-03-11
  • 2013-04-27
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
相关资源
最近更新 更多