How to limit the amount of characters in 5 UITextFields
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
iPhone SDK: Set Max Character length TextField
我有5个UITextField,其中只能允许6个字符。 如何将每个文本字段的输入限制为6个字符? 我尝试的任何其他代码都失败了,但我没有找到解决它的方法,谢谢:D
编辑:这是我测试的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSUInteger newLength1 = [serie1.text length] + [string length] - range.length; NSUInteger newLength2 = [serie2.text length] + [string length] - range.length; NSUInteger newLength3 = [serie3.text length] + [string length] - range.length; NSUInteger newLength4 = [serie4.text length] + [string length] - range.length; NSUInteger newLength5 = [serie5.text length] + [string length] - range.length; if(newLength1 > 6) return NO; if(newLength2 > 6) return NO; if(newLength3 > 6) return NO; if(newLength4 > 6) return NO; if(newLength5 > 6) return NO; return YES; } |
和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if(serie1.text.length >= 6 && range.length == 0) { return NO; } if(serie2.text.length >= 6 && range.length == 0) { return NO; } if(serie3.text.length >= 6 && range.length == 0) { return NO; } if(serie4.text.length >= 6 && range.length == 0) { return NO; } if(serie5.text.length >= 6 && range.length == 0) { return NO; } return YES; } |
两者都有一个问题,当您写入6个字符时,您将无法再在任何其他文本字段上写入,直到您删除所写入的字符
1 2 3 4 5 6 7 8 | -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if(textField.text.length >= 7 && range.length == 0) { return NO; } return YES; } |
实现
1 2 3 4 5 6 7 8 9 | -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSUInteger newLength = [textField.text length] + [string length] - range.length; if(newLength > 6) return NO; return YES; } |