首页 > 解决方案 > 如何限制 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

我怎么能那样做?

标签: iosswiftuitextfield

解决方案



推荐阅读