[英]Switching between multiple uitextfields
我已經實現了多個UITextField's
並且如果達到最大限制,想切換到下一個文本字段。 我已經實現了以下委托方法,但是由於某種原因,它崩潰了,並且在達到限制時沒有切換到下一個文本字段...
任何幫助將不勝感激...
- (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];
您發現字符串長度的方式似乎不合適。
NSString *totalText = [textField.text stringByAppendingString:string];
NSLog(@"Length : %d", [totalText length]);
而是使用它來查找字符串的長度
NSUInteger newLength = [textField.text length] + [string length] - range.length;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.