UITextField 限制输入字数、限制输入文本类型 2021-05-09

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
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容