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