iOS:在UITextView的光标处插入属性字符串?

时间:2018-12-11 17:01:59

标签: ios uitextview nsattributedstring

UITextView使您可以使用insertText函数在光标处插入纯文本。有没有一种使用归因文本的干净方法?

是将attributedText属性分为两部分的唯一方法-前光标和后光标-然后将新的属性字符串附加到前光标属性文本中,然后附加后光标属性文字?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

@matt建议,这是一个Swift 4.x函数:

fileprivate func insertAtTextViewCursor(attributedString: NSAttributedString) {
    // Exit if no selected text range
    guard let selectedRange = textView.selectedTextRange else {
        return
    }

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