我正在尝试在textview中添加带有attributedText的粗体字体。在某些按钮操作之后将应用此字体,我的问题是每当我添加粗体字时。它添加了粗体并重复了单词。在所附的图像中,应在单词“ 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
}
答案 0 :(得分:0)
我不知道您的文字为何重复。我会猜测,这与您替换范围内的字符有关,而该函数也替换了范围内的字符(您要替换范围两次,因此是双倍文本)。
但是,我不会将shouldChangeTextIn方法用于您要尝试执行的操作。为什么不只单击按钮上的textView.text呢?
buttonAction() {
textView.attributedText = // bolded text
}