我的应用程序有一个注册页面。系统会提示用户输入手机号码和四位 PIN 码以在应用程序中使用。有三个单元格字段有助于单元格格式的标准化——第一个字段是三位数字并保存区号,第二个字段也是三位数字,最后一个字段是四位。接下来是 PIN 字段。当用户在给定框中输入正确的位数时,我希望下一个字段变为活动状态。例如,当有人输入三位数的区号时,光标应前进到下一个框。
我已经让它工作了,这样如果一个人继续打字,光标就会移动。但是,它只在输入下一个数字后移动(例如,您输入三个区号,然后输入另一个数字,该数字将与光标一起出现在下一个框中;输入后光标不移动只有三位数字)。此外,我使用的方法似乎有一个小故障,如果字段已经具有所需的字符数,则无法编辑它们。
这是我目前使用的代码:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSUInteger newLength = newString.length;
if (textField.tag == 3) {
if (newLength == 4) {
[cellField2 becomeFirstResponder];
}
}
if (textField.tag == 4) {
if (newLength == 4) {
[cellField3 becomeFirstResponder];
}
}
if (textField.tag == 5) {
if (newLength == 5) {
[pinField becomeFirstResponder];
}
}
if (textField.tag == 6) {
if (newLength == 5) {
[pinField resignFirstResponder];
}
}
return YES;
}
我感谢任何帮助,谢谢。
ETA:编辑以包含 danh 的代码,我知道这比我所做的更正确。但是,我的光标问题仍然存在。