copy的一段代码,记录一下,原理完全不懂
extension LZPasswordAuthenticationVC:UITextFieldDelegate{
func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
let proposeLength = (textField.text?.lengthOfBytes(using: String.Encoding.utf8))! - range.length + string.lengthOfBytes(using: String.Encoding.utf8)
//proposeLength 限制字数
if proposeLength > 1 {return false}
//仅能输入数字
if oneTextField == textField{
let len = string.lengthOfBytes(using: String.Encoding.utf8)
for loopIndex in 0..<len {
let char = (string as NSString).character(at: loopIndex)
if char < 48{return false}
if char > 57{return false}
}
}
return true
}
}