Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何限制5个UITextField中的字符数_Iphone_Ios_Cocoa Touch - Fatal编程技术网

Iphone 如何限制5个UITextField中的字符数

Iphone 如何限制5个UITextField中的字符数,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,可能重复: 我有5个UITextFields,其中只允许6个字符。如何将每个文本字段的输入限制为仅6个字符?我尝试过的任何其他代码都失败了,我没有找到修复它的方法,谢谢:D 编辑:这是我测试的代码: -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSUInteger newLengt

可能重复:

我有5个UITextFields,其中只允许6个字符。如何将每个文本字段的输入限制为仅6个字符?我尝试过的任何其他代码都失败了,我没有找到修复它的方法,谢谢:D 编辑:这是我测试的代码:

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


两者都有一个问题,即当您写入6个字符时,在删除您写入的字符之前,您无法再写入任何其他文本字段

执行
UITextField
委托方法:

-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   if(textField.text.length >= 7 && range.length == 0)  
   {
      return NO;
   }
   return YES;
}
-(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;
}

我想不会,因为我已经看到了,并且在没有Luckt的情况下尝试过。请提供您尝试过的代码,因为这是自iOs开发开始以来许多开发人员使用的逻辑。哎呀,不,当我在一个字段上写6个字符时,我不能在下一个字段上写更多的字符,直到我删除之前写的6个字符,我测试了这一个和下一个,但没有任何效果,我将在我的问题上发布代码,请稍候为所有文本字段设置委托。您不需要为所有文本字段编写代码。我的代码可以工作,复制过去的内容,并在nib中为所有文本字段设置委托。已经通过代码和ibAh进行了设置。谢谢忘了这一点,现在开始工作:D
-(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;
}