Полагаю, это немного неловкий вопрос, поэтому позвольте мне перефразировать его с помощью иллюстрации:
У меня есть UITextView, который ограничен определенным количеством символов.Это регулярно проверяется с - (BOOL)textView:(UITextView *)aTextView shouldChangeTextInRange:(NSRange)aRange replacementText:(NSString *)aText
.Когда текст превышает пороговое значение (на иллюстрации это будет 8 символов), приложение переходит к следующему текстовому представлению и копирует следующий введенный символ (в данном случае p) в новый UITextView.Затем пользователь может ввести оставшуюся часть слова (в данном случае py).
Вместо того, чтобы разбивать слово на два UITextViews, я бы хотел, чтобы все слово «happy» было в следующем UITextView.Другими словами, мне нужно скопировать «hap» из строки 1 в начало строки 2, а затем удалить «hap» из строки 1.
Я придумал этот код, который проверяет строку 1 на наличие пробелов икопирует все после пробела в строку 2. Но это не сработает:
NSLog(@"text of current string: %@", aTextView.text); // e.g. "I am hap"
NSLog(@"chars in aTextView.text: %i", aTextView.text.length); // e.g. 8 chars
NSLog(@"text for next string: %@ ", aText); // e.g. "py"
NSString *aTextModified = aText;
for (int i = aTextView.text.length; i > 0; i--) {
NSLog(@"I currently check: '@%'", [aTextView.text characterAtIndex:i]);
if ([[aTextView.text characterAtIndex:i] isEqualToString:@" "]) {
// job done
} else {
NSLog(@"I add %@ infront of %@", [aTextView.text characterAtIndex:i], aText);
aTextModified = [NSString stringWithFormat:@"%@%@", [aTextView.text characterAtIndex:i], aText];
NSLog(@"I delete %@ as I have put it into the next string...", [aTextView.text characterAtIndex:i]);
[aTextView.text characterAtIndex:i] = @"";
}
}
XCode выдает предупреждение «Недопустимый тип получателя« unichar »для строки if ([[aTextView.text characterAtIndex:i] isEqualToString:@" "])
.Я полагаю, я не использую characterAtIndex, верно?Разрешено ли мне применять это к тексту (который должен быть UIString) в UITextView?
Кроме того, я получаю сообщение об ошибке «Требуется LValue как левый операнд присваивания» для последней строки [aTextView.text characterAtIndex:i] = @"";
СноваДумаю, я не совсем понимаю, как получить доступ к символу в UITextView и изменить его.
Буду очень признателен за любые предложения о том, как сделать это правильно, и если есть более простые способыдобиться того, что я пытаюсь сделать.