Правильный способ вставки юникода в UITextView.attributedText - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу смешать 2 шрифта в UITextView.Font1 имеет специальные символы Unicode, font2 нет.Если основной шрифт UITextView - font2, как я могу вставить Font1 в UITextView без перемещения курсора до конца?Так как .attributedText не является изменяемым.Я предполагаю, что мне нужно создать NSMutableString и назначить его для .attributedText.Однако это помещает курсор в конец.Есть ли способ вставить шрифт 1 при выделении курсора без перехода курсора в конец?Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете использовать эту следующую функцию для вставки атрибута в точку курсора.

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
}
...