在UITextView.attributedText中插入unicode的正确方法

时间:2019-02-11 17:59:33

标签: ios uitextview nsattributedstring

我想在UITextView中混合2种字体。 Font1具有特殊的unicode字符,font2没有。如果UITextView的主要字体是font2,如何在不将光标移到末尾的情况下将Font1插入UITextView?由于.attributedText是不可更改的。我假设我需要创建一个NSMutableString并将其分配给.attributedText。但是,这会将光标放在末尾。有没有一种方法可以在光标选择处插入字体1而不使光标跳到末尾? 预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用以下函数在光标处插入属性。

https://developer.apple.com/documentation/foundation/nsmutableattributedstring/1414947-insert

func insertAtTextViewCursor(attributedString: NSAttributedString) {

    // Find out the cursor point
    guard let selectedRange = textView.selectedTextRange else { return }

    // If cursor point found
    let cursorIndex = textView.offset(from: textView.beginningOfDocument, to: selectedRange.start)
    let mutableAttributedText = NSMutableAttributedString(attributedString: textView.attributedText)
    mutableAttributedText.insert(attributedString, at: cursorIndex)
    textView.attributedText = mutableAttributedText
}