ios - 设置 UITextField 的最大 int 值(不是字符数)

标签 ios swift int uitextfield max

在 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/

相关文章:

iphone - 使用数组填充 TableView 的正确方法?

ios - 通过 IOS 将多个图像发送到 chromecast 会导致闪烁

ios - UIBezierPath 段连接导致间隙

objective-c - iOS:释放正在使用的对象 (ARC)

ios - Alamofire POST 请求不工作

python - 将包含整数的元组解压到列表中

ios - Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题

swift - 在 UITableViewCell 上滑动

python - 使用 float 和整数解析 python 字符串

java - 求和常量时的隐式缩小与求和变量时的显式缩小