Следующий код решил это для меня.
Убедитесь, что вы проверили "\ b" (escape-символ Backspace), чтобы пользователь все еще мог стереть.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.text length] >= MAXLENGTH && ![string isEqualToString:@"\b"])
return NO;
return YES;
}
Что касается второго требования, то оно действительно не слишком сложно.Просто добавьте несколько строк кода в приведенный выше оператор if:
nextTextField.text = [nextTextField.text stringByAppendingString:string];
Это должно добавить любой текст, который вы только что ввели, в конец вашего следующего текстового поля.Вы также можете изменить способ обработки возврата.Что-то вроде:
if ([string isEqualToString:@"\b"])
nextTextField.text = [nextTextField.text substringToIndex:[nextTextField.text length]-1];
Добавление этого кода в вышеупомянутый оператор if также должно позволить вам удалить символ в конце полной строки (в конце строки в следующем текстовом поле).
РЕДАКТИРОВАТЬ: Вот код, который я использую для создания поля.
titleInput = [[UITextField alloc] initWithFrame:(CGRect){40,145,400,30}];
titleInput.borderStyle = UITextBorderStyleRoundedRect;
titleInput.delegate = self;
[self addSubview:titleInput];
Cheers