2015-08-26 2 views
2

У меня есть текстовое представление, и я хочу, чтобы можно было сделать выбор с помощью sendece и изменить размер/цвет/шрифт только для выбранной части.Редактирование атрибутов текстового вида

я сделал эту часть, чтобы принять выбранное слово:

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

    UITextRange *selectedRange = [textView selectedTextRange]; 
    NSString *selectedText = [textView textInRange:selectedRange]; 
    } 

, но я не знаю, как вносить изменения, а также изменить цвет выделения части.

Любая помощь будет полезной. Заранее спасибо.

+0

использование NSAttributedString для цвета и изменить стиль текста. Найти это –

+0

[посмотреть на это] (http://stackoverflow.com/questions/3482346/how-do-you-use-nsattributedstring) –

ответ

2

лучше, добавив NSDictionay как текст атрибута.

-(void)textViewDidChangeSelection:(UITextView *)textView{ 
UITextRange *selectedRange = [textView selectedTextRange]; 
NSString *selectedText = [textView textInRange:selectedRange]; 
NSLog(@"selectedText:%@",selectedText); 

if (selectedText.length) { 
    UIColor *color = [UIColor redColor]; 
    UIFont *font = [UIFont fontWithName:@"Arial" size:30.0]; 
    NSDictionary *attrs = @{NSForegroundColorAttributeName : color,NSFontAttributeName:font};// 
    NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithAttributedString:textView.attributedText]; 
    [attrStr addAttributes:attrs range:[textView.text rangeOfString:selectedText]]; 
    myColoredTextview.attributedText = attrStr; 
} 

}

3

Вы можете изменить цвет, или что-то в тексте, как это:

NSMutableAttributedString * atBody = [[NSMutableAttributedString alloc] initWithAttributedString:textView.attributedText]; 

    [atBody addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:[textView.text rangeOfString:selectedString]]; 

    textView.attributedText = atBody; 
+0

Уверен, теперь ОП спросит, как я могу выбрать цвет;): P –

+0

Я видел, что он может 'NSString * selectedText = [textView textInRange: selectedRange];'. :) – anhtu

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