在 Swift 中,是否可以为 UITextField 设置最大 INT 值?
我的用例是我有 5 个文本字段,需要具有最大 int 值。这些值的范围从 500 一直到 10,000。 5 个不同的文本字段中的每一个都有不同的最大值。我无法使用选择器或下拉菜单,因为增量将为 1。并且 UISlider 太难“擦洗”数字。
如果最大 int 值为 5,000,则用户无法输入(在数字键盘的键盘类型上)任何高于 5000 的值。
字符数不起作用,因为如果最大值是 500,如果我设置为 3 个字符,用户可以输入 999。
最佳答案
您可以检查文本字段中的当前值是否小于您指定的最大整数值:
(此时您可能需要将键盘类型更改为 .NumberPad
,以便用户仅输入数字值。)
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
}
我创建了一个example project为你。您可以下载并使用它。
关于ios - 设置 UITextField 的最大 int 值(不是字符数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55539145/