Как запомнить текстовые атрибуты в UITextView, когда пользователь начинает печатать
Я использую UITextView
и я пытаюсь отобразить текст, используя attributedText
свойство как пользователь вводит.
Вот мой текущий код:
textView.attributedText = NSMutableAttributedString(
string: "",
attributes: [
NSFontAttributeName: UIFont(name: "AvenirNextLTPro-Regular", size: 12.5)!,
NSForegroundColorAttributeName: UIColor.colorFromCode(0x262626),
NSKernAttributeName: 0.5,
NSParagraphStyleAttributeName: paragraphStyle
]
)
Проблема в том, что если вы введете пустую строку, когда пользователь начнет печатать, текст не будет отформатирован с attributedText
свойства.
Тем не менее, я заметил, что если я предоставлю строку, когда пользователь начинает добавлять эту строку, текст форматируется с attributedText
свойства.
Единственный способ решить, что мне нужно, - это переопределить эту функцию и устанавливать текст в атрибут attributeText каждый раз, когда пользователь вводит ключ:
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool
Нет ли другого лучшего способа сделать это?
1 ответ
Вместо установки пустой строки с атрибутом вам нужно использовать typingAttributes
имущество.
textView.typingAttributes = [
NSFontAttributeName: UIFont(name: "AvenirNextLTPro-Regular", size: 12.5)!,
NSForegroundColorAttributeName: UIColor.colorFromCode(0x262626),
NSKernAttributeName: 0.5,
NSParagraphStyleAttributeName: paragraphStyle
]
Смотрите также официальную документацию.
Атрибуты, применяемые к новому тексту, вводимому пользователем.