UITextView и NSMutableAttributedText

UITextView показывает форматированный текст при использовании NSAttributedString:

NSAttributedString* s1 =
[[NSAttributedString alloc] initWithString:@"Hello there!"
                                attributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleBody]}];
_textView.attributedText = s1;

Тем не менее, когда я использую NSMutableAttributedString Я вижу добавленные приписанные строки без форматирования. Форматирование будет показано только для строки, в которой оно было инициализировано.

UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]
    NSMutableAttributedString *emailBody = [[NSMutableAttributedString alloc] initWithString:@"" attributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName: font}];
if (_person.firstName.length > 0) {
    [emailBody appendAttributedString:[[NSAttributedString alloc]initWithString:_person.firstName attributes:@{NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleCaption1]}]];
    [emailBody appendAttributedString:[[NSAttributedString alloc]initWithString:@"\n" attributes:nil]];
}
if (_person.lastName.length > 0) {
    [emailBody appendAttributedString:[[NSAttributedString alloc]initWithString:_person.lastName attributes:@{NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2]}]];
    [emailBody appendAttributedString:[[NSAttributedString alloc]initWithString:@"\n" attributes:nil]];
}

Зачем?

1 ответ

Решение

Когда NSAttributedString добавлен в NSMutableAttributedStringУ него есть свои атрибуты.

Другие вопросы по тегам