#swift #xcode
Вопрос:
У меня есть UITextView text_recepty, в котором я пишу текст разными цветами. В моем решении мне нужно добавить цветной текст, но исходный текст и цвета должны оставаться неизменными. Есть ли способ правильно получить исходный текст с цветами?
var toastcolor: UIColor = UIColor.black
var toast: String = "TEST..."
if ChodButtonisOn == true {
toastcolor = UIColor(red: 118/255, green: 110/255, blue: 38/255, alpha: 1.0)
} else {
if HalfButtonisOn == true {
toastcolor = UIColor(red: 240/255, green: 127/255, blue: 18/255, alpha: 1.0)
}
}
let text1 = NSMutableAttributedString(string: text_recepty.text!)
let attr2 = [NSAttributedString.Key.foregroundColor: toastcolor]
let text2 = NSAttributedString(string: toast "n", attributes: attr2)
text1.append(text2)
text_recepty.attributedText = text1
```
Комментарии:
1.Я не уверен, что понимаю, в чем ваша проблема. Вы используете
UITextView
attributedText
свойство. Где у вас возникли проблемы?2. когда я добавляю новый текст с другим цветом, исходные цвета в UITextView не сохраняются
3. Вы добавляете текст программно или добавляете текст, вводя его в текстовое представление во время запуска вашего приложения?
Ответ №1:
Вам нужно получить attributedText
из UITextView, а затем добавить к нему новый текст, например:
let existingText = myTextView.attributedText
let mutableText = NSAttributedString(attributedString: existingText)
// Then add your text
Проверьте документы NSMutableAttributedString, чтобы узнать, как выполнить последнюю часть.