【问题标题】:How to limit the amount of characters in 5 UITextFields [duplicate]如何限制5个UITextFields中的字符数量[重复]
【发布时间】:2011-11-04 09:45:58
【问题描述】:

可能重复:
iPhone SDK: Set Max Character length TextField

我有 5 个 UITextField,应该只允许 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;
}

-(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 个字符时,你不能再在任何其他文本字段上写,直到你删除你写的字符

【问题讨论】:

  • 我猜不是,因为我已经看到了,但没有运气
  • 那么请提供您尝试过的代码,因为这是自iOs开发以来许多开发人员使用的逻辑..

标签: iphone ios cocoa-touch


【解决方案1】:
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   if(textField.text.length >= 7 && range.length == 0)  
   {
      return NO;
   }
   return YES;
}

【讨论】:

  • 哎呀,不,当我在一个字段上写 6 个字符时,我不能在下一个字段上写更多,直到我删除我之前写的 6 个字符
  • 不,我测试了这个和下一个,没有任何效果,我会在我的问题上发布代码,等等
  • 请为所有文本字段设置委托。而且您不需要为所有文本字段编写..我的代码将起作用,照原样复制过去并在笔尖中为所有文本字段设置委托..
  • 已经通过代码和 ib 设置它们
  • 啊谢谢忘记了,现在工作:D
【解决方案2】:

实现UITextField Delegate 方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2013-12-25
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2015-12-31
    相关资源
    最近更新 更多