我正在尝试在textview中添加带有attributionText的粗体字体。一些按钮操作后会应用此字体,我的问题是每当我添加粗体字体时。它正在添加粗体字并重复单词。在附图中,应在单词“hello”之后添加粗体字。所以它表明这是大胆的
这就是我尝试过的:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if boldFont {
let boldStyle = NSAttributedString(string: text, attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: 20)])
textView.textStorage.replaceCharacters(in: range, with: boldStyle)
}
return true
}
我不知道为什么你的文字在重复。我猜这与你替换范围中的字符有关,而函数也替换范围中的字符(你正在替换范围两次,因此双文本)。
但是,我不会将shouldChangeTextIn方法用于您要执行的操作。为什么不在按钮上单击替换textView.text?
buttonAction() {
textView.attributedText = // bolded text
}