Я создаю UITextView, где пользователь может изменить стиль текста (основной, жирный, заголовок и т. Д. c.). Поэтому я применяю пользовательский NSAttributedString.Key
, чтобы отслеживать и позже читать стиль текста, и я использую UItextView.typingAttributes
, чтобы определить стиль текста, который впоследствии вводится пользователем. Я понял, что typingAttributes
переустанавливается каждый раз при изменении выбора. Поэтому я переустановил свои атрибуты typingAttributes с помощью метода textViewDidChangeSelection
(который имеет смысл для меня, поскольку мне нужно определить текущий стиль и соответствующим образом обновить будущие атрибуты typingAttributes).
Теперь единственная проблема, которая у меня есть, заключается в том, что когда слово изменяется с помощью автокоррекции (например, при неправильном написании), typingAttributes
не присваивается. Вот как я его назначаю:
func textViewDidChangeSelection(_ textView: UITextView) {
textView.typingAttributes = [.textStyle: TextStyle.body, .font: UIFont.systemFont(ofSize: 16)]
}
Есть идеи, почему? Спасибо!