我已经实现了多个 UITextField 的
,如果达到最大限制,我想切换到下一个文本字段。我已经实现了以下委托(delegate)方法,但由于某种原因它崩溃了并且在达到限制时没有切换到下一个文本字段...
任何帮助将不胜感激...
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSLog(@"%s", __FUNCTION__);
NSString *totalText = [textField.text stringByAppendingString:string];
NSLog(@"Length : %d", [totalText length]);
switch (textField.tag) {
case FirstTextFieldTag: {
if ([totalText length] > MaxLentgthTextField1) {
[self.textField1 resignFirstResponder];
[self.textField2 becomeFirstResponder];
}
break;
}
case SecondTextFieldTag: {
if ([totalText length] > MaxLentgthTextField2) {
[self.textField2 resignFirstResponder];
[self.textField3 becomeFirstResponder];
}
break;
}
case ThirdTextFieldTag: {
if ([totalText length] > MaxLentgthTextField3) {
[self.textField3 resignFirstResponder];
[self.textField4 becomeFirstResponder];
}
break;
}
case FourthTextFieldTag: {
if ([totalText length] > MaxLentgthTextField4) {
[self.textField4 resignFirstResponder];
[self.textField5 becomeFirstResponder];
}
break;
}
case FifthTextFieldTag: {
if ([totalText length] > MaxLentgthTextField5) {
[self.textField5 resignFirstResponder];
return NO;
}
break;
}
default:
break;
}
return YES;
}
最佳答案
没有看到你的崩溃日志。这部分肯定是错误的
NSString *totalText = [textField.text stringByAppendingString:string];
文本字段的新文本不是通过追加更改的字符来计算的,而是通过更改给定范围内的字符来计算的
请尝试一下,然后告诉我们结果
NSString * totalText = [textField.text stringByReplacingCharactersInRange:range withString:string];
关于ios - 在多个 uitextfields 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23774427/