关于iPhone:如何限制5个UITextField中的字符数

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;
}


实现UITextField委托方法:

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;
}