只有当用户输入第三个字符时,下一个代码才会起作用。我希望当用户输入第二个字符时焦点移动 TextField 但仍将前 2 个字符保留在第一个 TextField 中。如果我尝试类似newString.length < 2
,当连续输入 2 个字符时,我将在第一个字符中获得第一个字符,在UITextField
第二个字符中获得第二个字符UITextField
。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (newString.length <= 2 )
{
return YES;
}
else
{
NSInteger nextTag;
nextTag = textField.tag + 1;
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
[nextResponder becomeFirstResponder];
}
else {
[textField resignFirstResponder];
}
}
return YES;
}