Как использовать NSMutuableAttributedString в UITextView?

Я получаю сообщение об ошибке:

Не удается присвоить значение типа «NSMutableAttributedString» типу «String?»

при попытке поместить строку в UITextView.

Я прочитал следующую статью: https://www.hackingwithswift.com/articles/113/nsattributedstring-by-example, который указывает, что NSAttributedString можно использовать с UITextView. Я также попытался преобразовать NSMutuableAttributedString в строку следующим образом:

self.text.text = String(attributedQuote)

Однако это не сработало.

Это назначает «транскрипцию» в качестве строки, которая будет преобразована в NSMutableAttributedString:

let attributedQuote = NSMutableAttributedString(string: transcription)

Это добавляет подчеркивание к первому слову в атрибутированной цитате:

attributedQuote.addAttribute(.underlineStyle, value: true, range: NSRange(location: 0, length: 4))

Это добавляет атрибутQuoteQuote к UITextView:

self.text.text = attributedQuote

К сожалению, я получаю сообщение об ошибке, когда ожидал, что первое слово будет подчеркнуто.


person Zenman C    schedule 19.04.2019    source источник
comment
Пожалуйста, ознакомьтесь с документацией для UITextView. Найдите свойство с типом NSAttributedString.   -  person rmaddy    schedule 19.04.2019
comment
developer.apple.com/documentation/uikit/uitextview/ — Спасибо. Я проверил документацию и изменил код на: self.text.attributedText = attributeQuote. Следующий пост также очень полезен: stackoverflow.com/questions/24666515/. Теперь проблема заключается в том, что форматирование, то есть размер шрифта, выравнивание по центру, изменилось. Есть ли у вас какие-либо предложения о том, как сохранить исходное форматирование?   -  person Zenman C    schedule 19.04.2019


Ответы (1)


Спасибо @rmaddy за то, что указал мне правильное направление. Я пошел к документации здесь:

https://developer.apple.com/documentation/uikit/uitextview/1618626-attributedtext

И скорректировал мой код соответственно:

self.text.attributedText = атрибутЦитата

Я также нашел следующий пост очень полезным:

Как создать строку с атрибутами с помощью Swift?

Одна проблема, которая у меня все еще была, заключается в том, что при применении вышеуказанного кодирования исходное форматирование - выравнивание по центру, размер шрифта, ограничения - для textView сбрасывается, поэтому я перенастроил их, добавив соответствующие атрибуты в attributeString. Дополнительные сведения см. в этой статье: https://www.hackingwithswift.com/articles/113/nsattributedstring-by-example

person Zenman C    schedule 19.04.2019