Как получить текст, приписываемый textview?

#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, чтобы узнать, как выполнить последнюю часть.