2013-12-13 5 views
0

У меня есть UITextView, в котором пользователь вводит текст. Я добавил код, так что, когда введенный текст содержит #hashtag, это слово будет окрашено в синий цвет. Вот код:Вертикальный текст в атрибуте UITextView

- (void)textViewDidChange:(UITextView *)textView 
{ 
    //Coloring of hashtags 
    NSArray *words = [textView.text componentsSeparatedByString:@" "]; 

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:textView.text]; 

    for (NSString *word in words) 
    { 
     if ([word hasPrefix:@"#"]) 
     { 
      NSRange matchRange = [textView.text rangeOfString:word]; 
      [attrString addAttribute:NSForegroundColorAttributeName value:[AppereanceConfiguration defaultTintColor] range:matchRange]; 
     } 
    } 
    textView.attributedText = attrString; 
} 

На iOS7 он работает отлично, но на iOS6, как только я начинаю набирать текст начинает идти вертикально вниз. Например: если я хотел ввести слово «Тест» - когда я нажимаю «Т», он выглядит нормально, но когда я нажимаю «е», он появляется ниже «Т» в новой строке и так далее. Каждая следующая буква появляется под предыдущей.

Как исправить это?

ответ

0

Попробуйте это:

- (void)textViewDidChange:(UITextView *)textView { 

[textView setTypingAttributes:{@NSForegroundColorAttributeName:[AppereanceConfiguration defaultTintColor]}]; 
} 

добавить условия и не нужно создавать каждый раз NSMutableAttributedString.

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