使用代理方法来限制输入框中的字数,输入的符号,输入的数字大小等各种限制
限制输入字数
已经有小数点了,就不能继续输入小数点
不能输入以0为开头的内容
不能输入以.为开头的内容
小数点后只允许输入一位数
只能输入100以下的数值
**不能包括小数点 **
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else { return true }
//已经有小数点了,就不能继续输入小数点
if text.contains("."), string == "." {
return false
}
//不能输入以0为开头的内容
if text == "", string == "0" {
return false
}
//不能输入以.为开头的内容
if text == "", string == "." {
return false
}
print(string)
let allText = text + string
// 小数点后只允许输入一位数
if allText.contains(".") {
let arr = allText.components(separatedBy: ".")
if arr.count == 2 {
let last = arr.last!
return last.count <= 1
}
print(arr)
}
// 不能包括小数点 (仅仅举例说明,与上有冲突)
if allText.contains(".") {
return false
}
//限制输入字数
let newLength = text.count + string.count - range.length
return newLength <= 4
//只能输入100以下的数值
let allValue = (allText as NSString).doubleValue
return allValue <= Double(100.0)
// 限制只能输入数字和删除键(backspace)
let allowedCharacters = CharacterSet.decimalDigits
let characterSet = CharacterSet(charactersIn: string)
return allowedCharacters.isSuperset(of: characterSet)
}