Setting a max int value (not character count) to a UITextField

后端 未结 2 829
故里飘歌
故里飘歌 2021-01-13 05:20

In Swift, is it possible to set a max INT value to a UITextField?

My use-case is I have 5 text fields that need to have a maximum int value. These values range from

2条回答
  •  星月不相逢
    2021-01-13 05:45

    You can check if the current value in the text field is less than the maximum integer value you've specified:

    (You might want to change the keyboard type to .NumberPad at this point to let user type only numeric values.)

    textField.keyboardType = .NumberPad
    

    --

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
      let newText = NSString(string: textField.text!).stringByReplacingCharactersInRange(range, withString: string)
      if newText.isEmpty {
        return true
      }
      else if let intValue = Int(newText) where intValue <= self.maxValue {
        return true
      }
      return false
    }
    

    I created an example project for you. You can download and play around with it.

提交回复
热议问题