Это должно быть легко сделать, но я не могу понять это.
У меня есть NSMutableAttributedString, в котором есть, например, «Это тест». Я хочу покрасить слово «тест» в синий цвет, что я и делаю:
NSMutableAttributedString *coloredText = [[NSMutableAttributedString alloc] initWithString:@"This is a test"];
[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(10,4)];
Это прекрасно работает. Но теперь я хочу вернуть цвет текста к черному цвету для всего, что напечатано после «теста».
If I do:
[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(coloredText.string.length, 1)];
Я получаю ошибку objectAtIndex: EffectiveRange: вне границ. Предположительно, потому что диапазон выходит за пределы длины строки.
If I do:
[coloredText addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(coloredText.string.length, 0)];
Ошибка исчезает, но текст после слова «тест» остается синим.
Как установить текущий цвет в точке вставки, когда он находится в конце строки??
Приветствия для любого ввода.
NSAttributedString
. Если вы используетеUITextField
илиUITextView
, вам следует правильно обновить свой вопрос. - person rmaddy   schedule 01.10.2013