【问题标题】:How to restrict the maximum allowed input value in a text field to be 10? [duplicate]如何将文本字段中允许的最大输入值限制为 10? [复制]
【发布时间】:2015-08-14 09:36:23
【问题描述】:

我有一个 UITextField。我想将字段中允许的最大输入值限制为 10。

即当用户在里面输入数字时,一旦输入值大于10,输入字段中的值将不再更新,除非用户输入小于或等于10的值。

【问题讨论】:

    标签: ios uitextfield


    【解决方案1】:

    所有其他答案都在限制输入的 length,而 OP 显然要求限制输入的 value。首先,你也可以使用UIStepper


    (来源:apple.com

    UISlider 用于此目的(与标签一起显示当前值)。这对用户来说也可能更清楚。

    如果你坚持基于 UITextField 的方法,你需要实现 textField:shouldChangeCharactersInRange:replacementString: 方法如下:

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
        NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string];
        NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
        NSNumber *number = [numberFormatter numberFromString:text];
        if (number == nil || [number doubleValue] > 10) {
            return NO;
        }
        return YES;
    }
    

    如果您不允许负数,您可能需要添加一些额外的检查。

    【讨论】:

      【解决方案2】:

      试试这个:

      -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
      {
      if(textField == mytextField)
      {
       if (textField.text.length == 10)
              {
                  if (range.length == 0)
                  {
                      return NO;
                  }
              }
      return YES;
      }
      }
      

      --> 绝对会帮到你

      祝你好运

      【讨论】:

      • 它可以限制输入长度,但它不能满足 OP 的要求。
      猜你喜欢
      • 2013-04-22
      • 2021-10-13
      • 2012-01-22
      • 2017-11-07
      • 2020-09-09
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      相关资源
      最近更新 更多