ios - 如何限制 UITextField 中的十进制输入值
问题描述
我目前正在检查我的UITextField
,它被设置为显示数字小键盘,shouldChangeCharactersIn
以将输入限制为只有一个小数分隔符,并且只有 2 个小数点(感谢这个问题):
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let decimalSeparator = String(Locale.current.decimalSeparator ?? ".")
if (textField.text?.contains(decimalSeparator))! {
let limitDecimalPlace = 2
let decimalPlace = textField.text?.components(separatedBy: decimalSeparator).last
if (decimalPlace?.count)! < limitDecimalPlace {
return true
} else {
return false
}
}
}
这很好用。但是,现在可以插入用户想要的任何值,我想将其限制为低于 999 的值。我曾经检查长度以仅允许 3 个字符,但现在我想允许以下值(例如) :
143
542.25
283.02
19.22
847.25
但我不想允许:
2222
3841.11
999.99
我怎么能那样做?
解决方案
推荐阅读
- c++ - 如何 cin 到 back_inserter 或 c++ 中的任何插入器?
- android - Android Studio 4.1.1 安装卡在下载
- android - 如何将 lintChecks 应用于所有依赖模块?
- swiftui - SwiftUI 闭包更新 @State init
- python - 有没有办法让机器人对用户的消息命令做出反应?
- unit-testing - Postgis:无尽的st_intersection
- python - 如何在 Python 中使用格式化的参数化查询进行更新?
- c - 在联合 C 中打印 int 字节
- sql - 如何删除 | 使用proc sql的CHAR数据集中的特殊字符?
- javascript - 尝试通过 React 访问 AWS 中的用户设置时引发“无凭据”错误