关于iPhone:如何在三个UITextfield中设置字符限制限制

How to set the character limit limit in three UITextfield

本问题已经有最佳答案,请猛点这里访问。

我有三个Textfield。

1.textField1 = 15个字符

2.textField2 = 50个字符

3.textField3 = 50个字符

程式码片段

if (textField1 .text.length <15 && textField2 .text.length <50 && textField3 .text.length <50) {

1
2
3
4
5
6
    return YES;        

    }else{

        return NO;
    }

如何设置三个UITextfield的限制。

提前致谢


上面给出的一些答案的问题是:例如,我有一个文本字段,必须设置15个字符的输入限制,然后在输入第15个字符后停止。 但它们不允许删除。 那是删除按钮也不起作用。 由于我面临着同样的问题。 提供解决方案,如下。 最适合我的作品

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
 if(textField.tag==6)
 {
    if ([textField.text length]<=30)
    {
        return YES;  
    }
    else if([@"" isEqualToString:string])
    {
        textField.text=[textField.text substringToIndex:30 ];
    }

    return NO;
 }
 else
 {
    return YES;
 }
}

我有一个文本字段,其标记设置为" 6"
并且我已将最大字符限制限制为30;
在每种情况下都可以正常工作。 以相同的方式,您可以为其他文本字段设置标签,并以相同的方式定义它们的限制。


这样尝试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    NSUInteger length = [textField.text length] + [string length] - range.length;

    if([textField  isEqual:textField1])
    {
        if(length<15)
            return YES;
        else
            return NO;
        NSLog(@"1");
    }
    else  if([textField  isEqual:textField2] | [textField  isEqual:textField3])
    {
        if(length<50)
            return YES;
        else
            return NO;
        NSLog(@"2 or 3");

    }


}


该委托允许将Uitexfield限制为nbChar:

1
2
3
4
5
6
7
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([textField.text length] >=nbChar) {
        textField.text = [textField.text substringToIndex:nbChar];
        return NO;
    }
    return YES;
}