2012-04-25 5 views
2

У меня есть следующий код в моем приложенииОтображение NSMutableAttributedString

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:self.myDisplayTxt]; 
     [string addAttribute:(NSString*)kCTForegroundColorAttributeName 
        value:(id)[[UIColor redColor] CGColor] 
        range:NSMakeRange(0,5)]; 

    self.myTextView.text = string; 

При назначении NSMutableAttributedString в UITextView я получаю следующее сообщение об ошибке:

Incompatible objective c types struct NSMutableAttributedString expected struct nsstring

Поэтому, пожалуйста, дайте мне знать, как я могу отобразить NSMutableAttributedString в UITextView.

ответ

0

Вы не можете, UITextView не поддерживает атрибутированные строки. Если вы действительно хотите использовать атрибутированные строки для установки цвета переднего плана (как в вашем примере), вы можете достичь этого, установив свойство textColor текстового вида.

+0

на самом деле я хочу подчеркнуть текст, что может быть сделано – user198725878

+0

С 'UITextView', нет. Как отметил @Ondra, есть несколько альтернатив сторонних разработчиков для UITextView, которые поддерживают богатый текст (атрибутные строки), но, по моему опыту, они, как правило, ошибочны и неполны - ymmv. – omz

+4

Начиная с iOS 6, 'UITextView' поддерживает 'NSAttributedStrings'. –

2

Вы можете использовать эту библиотеку. Как писал omz, UITextView не без сожаления поддерживает NSAttributedString.

Может быть, это один может помочь вам: https://github.com/enormego/EGOTextView

Они говорят об этой библиотеке следующее:

UITextView replacement with additional support for NSAttributedString.

UPDATE: Основываясь на ваших разъяснений в комментарий для ответа ОМЗ, вы можете посмотреть здесь : Underline text inside uitextview

UPDATE 2: В iOS 6 вы можете использовать NSAttributedString из коробки. Например, например:

UIColor *_red=[UIColor redColor]; 
UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:72.0f]; 
[attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)]; 
[attString addAttribute:NSStrokeColorAttributeName value:_red range:NSMakeRange(0, _stringLength)]; 
[attString addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithFloat:-3.0] range:NSMakeRange(0, _stringLength)]; 
+0

Это устаревшее, UITextView теперь поддерживает NSAttributedString –

+1

@Frank Действительно ... downvote? :) Как раз то, что ответ больше не утихает? А как насчет поддержки более старых версий iOS? Все еще не годный к употреблению? –

Смежные вопросы