将max int值(不是字符数)设置为UITextField

Joe*_*Joe 5 int max uitextfield ios swift

在Swift中,是否可以将最大INT值设置为UITextField?

我的用例是我有5个文本字段需要有一个最大的int值.这些值的范围从500到10,000.5个不同的文本字段中的每一个都具有不同的最大值.我不能使用选择器或下拉,因为增量将是1.而UISlider将太难以"擦入"数字.

如果max int值为5,000,则用户无法输入(在数字键盘的键盘类型上)任何高于5000的值.

字符数不起作用,因为如果最大值为500,如果我设置为3个字符,用户可以键入999.

ozg*_*gur 6

您可以检查文本字段中的当前值是否小于您指定的最大整数值:

(您可能希望此时将键盘类型更改.NumberPad为允许用户仅键入数值.)

textField.keyboardType = .NumberPad
Run Code Online (Sandbox Code Playgroud)

-

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
}
Run Code Online (Sandbox Code Playgroud)

我为你创建了一个示例项目.你可以下载并玩它.