iOS Swift 输入框限制长度

2,347 阅读1分钟

UITextField输入限制长度,留在这里给需要的朋友撇一眼 输入限制,效果就是常见的验证码长度限制效果。最多只有6位,超过只能删除

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let limitation = 19
          
        let currentLength = textField.text?.count ?? 0 // 当前长度
        if (range.length + range.location > currentLength){ 
            return false
        }
        // 禁用启用按钮
        let newLength = currentLength + string.count - range.length // 加上输入的字符之后的长度
        if newLength >= limitation {
                confirmButton.isEnable = true
            } else {
                confirmButton.isEnable = false
            }
        return newLength <= limitation
    }

在输入框为空的时候处理操作

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let newLength = range.location + string.count
        if newLength > 0 {
            // 输入框为空时
        } else {
            //输入框不为空
        }
    }