当前位置: 首页 > 面试题库 >

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

姚乐家
2023-03-14
问题内容

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

我的用例是我有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
}

我为您创建了一个示例项目。您可以下载并试用它。



 类似资料:
  • 我正在使用二维数组制作一个3x3矩阵。数组最初将显示全部“-”。之后,我尝试将数组的一些值更新为'1'和'2'。但显示仍然显示所有的'-',而不更新数组的值。

  • 问题内容: 我想设置允许在a 和a中键入的最大字符数。然后,该数字将显示在一个小标签中(供用户参考,Twitter风格。) 问题答案: 更新 Swift 4.X 试试看:

  • 我在R中的光栅包中遇到了“writeRaster”功能问题。我正在导入我在ArcGIS中制作的光栅(TIF)(与要素光栅的距离)。 我的目标是将距离光栅重新采样到正确的分辨率和范围,然后用适当的光栅“遮罩”它,以将其裁剪到我需要的形状。当我用基本打印功能检查遮罩的结果时,一切看起来都很好,我可以看到新遮罩光栅中的每个像素都有一个距离值。 但是,当我使用writeRaster函数将此光栅写入文件时,

  • 如何将字符串值转换为int?我正在获取。 结果应该类似于。

  • 我想找到将转换为的最快方法。完整的问题是将形式为HHMMSSxxxxxxxxx时间戳的转换为纳秒,其中分配后约50个字节,可以安全地读取(但不能写入)。我们只关心这个问题中的最后9位数字。 版本1是基本版本,版本2,3尝试保存一些计算。我使用-O3标志编译,在数组中存储10s的能力很好,因为它经过了优化(使用Godbolt检查)。 我怎样才能更快?是的,我知道这听起来像是过早的优化,但让我们假设我

  • 我正试图使用Spring JDBCTemplate从数据库中获取一条记录。在JdbcTemplate中,我试图通过使用类BeanPropertyRowMapper来自动化数据绑定。我的数据库表列名称类型和模型对象字段名称类型是相同的…我实现了这个API,但我没有得到预期的结果…对于int和double字段,我得到0和0.0值,尽管这些值在数据库中是不同的... 请帮助解决这个问题...我的代码如下