使用 Swift 在带有属性文本的 UITextView 中的光标点处设置特定字体大小

Setting particular font-size at the cursor point in UITextView with attributed text using Swift

我正在尝试使用 UITextView 构建 RichTextEditor。 当我在文本末尾应用不同的字体大小时,它无法更新键入的新文本的字体大小。

我目前有以下代码,我试图让它工作:

富文本出口是
@IBOutlet weak var richTextView: UITextView!

尝试更改字体的代码是

func setAttributesForSelectedTextRange(_ attributes: [NSAttributedString.Key: Any]) {
    if let text = richTextView.attributedText.mutableCopy() as? NSMutableAttributedString, let selectedRange = richTextView.selectedTextRange {
        let cursorPosition = richTextView.offset(from: richTextView.beginningOfDocument, to: selectedRange.start)
        text.addAttributes(attributes, range: richTextView.selectedRange)
        if selectedRange.end == richTextView.endOfDocument {
            text.append(NSAttributedString(string: "", attributes: attributes))
        }

        richTextView.attributedText = text
    }
}

我尝试在带有新属性的末尾添加一个空字符串,但没有成功。 如何实现设置上面例子中的属性变化?

it fails to update the font size for new text typed.

设置用户将输入的文本属性的方法是设置UITextView的typingAttributes.

https://developer.apple.com/documentation/uikit/uitextview/1618629-typingattributes