Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用SkyFloatingLabelTextField验证swift中的文本字段_Ios_Swift_Textfield_Skyfloatinglabeltextfield - Fatal编程技术网

Ios 如何使用SkyFloatingLabelTextField验证swift中的文本字段

Ios 如何使用SkyFloatingLabelTextField验证swift中的文本字段,ios,swift,textfield,skyfloatinglabeltextfield,Ios,Swift,Textfield,Skyfloatinglabeltextfield,我正在使用SkyFloatingLabeltextField作为textfield。我想检查所有文本字段是否有效,然后我想调用下一个viewController。因此,请告诉我如何检查func textField(\utextfield:UITextField,shouldchangeCharactersinrange:NSRange,replacementString:string)->Bool{} 是真是假??? 下面是我的代码 我的纽扣就像 } 那么,当它有效时,如何处理它呢 如果要在键入

我正在使用SkyFloatingLabeltextField作为textfield。我想检查所有文本字段是否有效,然后我想调用下一个viewController。因此,请告诉我如何检查
func textField(\utextfield:UITextField,shouldchangeCharactersinrange:NSRange,replacementString:string)->Bool{}

是真是假??? 下面是我的代码

我的纽扣就像

}

那么,当它有效时,如何处理它呢


如果要在键入时执行检查,可以使用委托方法执行检查:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let text = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
    // Perform validation of the `text`
    if valid {
        return true
    } else {
        return false
    }
}

或者,如果要在填写完所有字段后执行检查,可以通过
textField.text

检查文本。如果要在键入时执行检查,可以使用委托方法执行检查:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let text = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
    // Perform validation of the `text`
    if valid {
        return true
    } else {
        return false
    }
}

或者,如果要在填写完所有字段后执行检查,您可以通过
textField检查文本。text

在这种情况下,您需要实现UITextfield的委托:

如果要检查每个字符输入并控制文本输入,请使用以下方法:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if textField == newPasswordTextField {
        let newString = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
        let existOrNotNumber  = checkTextNumber(text: newString)
        let existOrNotSpecialCharacter  = checkSpecialCharacter(text: newString)
        let existOrNotCapitalCharacter = CapitalLetter(text: newString)
        let existOrNotlwerCharacter = lowerCaseLetter(text: newString)
        let usernameSameOrNot = checkUserName(text: newString )

        textField.text = newString;

        if existOrNotNumber {
            numericDigitLabel.textColor = kGreenColor
        }else{
            numericDigitLabel.textColor = UIColor.red
        }
        if existOrNotSpecialCharacter {
            specialCharacterLabel.textColor = kGreenColor
        }else{
            specialCharacterLabel.textColor = UIColor.red
        }
        if existOrNotCapitalCharacter{
            uppercaseCharacterLabel.textColor = kGreenColor
        }else{
            uppercaseCharacterLabel.textColor = UIColor.red
        }
        if existOrNotlwerCharacter{
            lowercaseCharacterLabel.textColor = kGreenColor
        }else{
            lowercaseCharacterLabel.textColor = UIColor.red
        }
        if (newString.characters.count) >= 8 && (newString.characters.count) <= 50 {
            minimumEightCharacterLabel.textColor = kGreenColor
        }else{
            minimumEightCharacterLabel.textColor = UIColor.red
        }
        if usernameSameOrNot{
         userNameCannotBePasslabel.textColor = kGreenColor
        }else{
         userNameCannotBePasslabel.textColor = UIColor.red
        }
        return false
    }
    return true
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
如果textField==newPasswordTextField{
让newString=NSString(string:textField.text!)。replacingCharacters(in:range,with:string)
让existOrNotNumber=checkTextNumber(文本:newString)
让existOrNotSpecialCharacter=checkSpecialCharacter(文本:newString)
让existOrNotCapitalCharacter=CapitalLetter(文本:newString)
让existOrNotlwerCharacter=lowerCaseLetter(文本:newString)
让usernameSameOrNot=checkUserName(文本:newString)
textField.text=新闻字符串;
如果existOrNotNumber{
numericDigitLabel.textColor=kGreenColor
}否则{
numericDigitLabel.textColor=UIColor.red
}
如果存在NotSpecialCharacter{
specialCharacterLabel.textColor=kGreenColor
}否则{
specialCharacterLabel.textColor=UIColor.red
}
如果存在NotCapitalCharacter{
uppercaseCharacterLabel.textColor=kGreenColor
}否则{
大写字符label.textColor=UIColor.red
}
如果存在NotLwerCharacter{
lowercaseCharacterLabel.textColor=kGreenColor
}否则{
小写字符label.textColor=UIColor.red
}
如果(newString.characters.count)>=8&&(newString.characters.count)Bool{
var isValid=true
var errorMessage:String=“”
让我们展示并返回:()->Bool={Void->Bool in
AppUtility.showAlert(消息:errorMessage,isSuccess:false)
返回有效
}
让我们在没有土司的情况下展示并返回:()->Bool={Void->Bool in
返回有效
}
if(oldPasswordTextField.text???).isEmpty | |(oldPasswordTextField.text?.trimmingCharacters(in:.空格).characters.count)!==0{
isValid=false
errorMessage=kOldPasswordEmptyMessage
返回显示和返回()
}
if(newPasswordTextField.text???).isEmpty | |(newPasswordTextField.text?.trimmingCharacters(in:.空格).characters.count)!==0{
isValid=false
errorMessage=kNewPasswordEmptyMessage
返回显示和返回()
}
if(confirmPasswordTextField.text???).isEmpty | |(confirmPasswordTextField.text?.trimmingCharacters(in:.空格).characters.count)!=0{
isValid=false
errorMessage=kConfirmPasswordEmptyMessage
返回显示和返回()
}
如果oldPasswordTextField.text!=UserDefaults.standard.object(forKey:kOldPassword)作为?字符串{
isValid=false
errorMessage=kCorrectOldPasswordMessage
返回显示和返回()
}
如果(newPasswordTextField.text?.characters.count)!<8(newPasswordTextField.text?.characters.count)!>50{
isValid=false
不带土司的退货和退货()
//errorMessage=“新密码不应少于8个字符且不应超过50个字符”
}
if!checkTextNumber(文本:newPasswordTextField.text!){
isValid=false
不带土司的退货和退货()
//errorMessage=“新密码必须至少包含1个数字”
}
if!checkSpecialCharacter(文本:newPasswordTextField.text!){
isValid=false
不带土司的退货和退货()
//errorMessage=“新密码必须至少包含1个特殊字符”
}
if!CapitalLetter(文本:newPasswordTextField.text!){
isValid=false
不带土司的退货和退货()
//errorMessage=“新密码必须至少包含1个大写字符”
}
if!lowerCaseLetter(文本:newPasswordTextField.text!){
isValid=false
不带土司的退货和退货()
//errorMessage=“新密码必须至少包含1个小写字符”
}
如果!检查用户名(文本:newPasswordTextField.text!){
isValid=false
不带土司的退货和退货()
}
如果confirmPasswordTextField.text!=newPasswordTextField.text{
isValid=false
errorMessage=kNewPassAndCofirmSameMessage
返回显示和返回()
}
返回有效
}

单击按钮只需检查isValid(),如果返回true,则允许它传递到下一个视图控制器

在这种情况下,您需要实现UITextfield的委托:

如果要检查每个字符输入并控制文本输入,请使用以下方法:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if textField == newPasswordTextField {
        let newString = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
        let existOrNotNumber  = checkTextNumber(text: newString)
        let existOrNotSpecialCharacter  = checkSpecialCharacter(text: newString)
        let existOrNotCapitalCharacter = CapitalLetter(text: newString)
        let existOrNotlwerCharacter = lowerCaseLetter(text: newString)
        let usernameSameOrNot = checkUserName(text: newString )

        textField.text = newString;

        if existOrNotNumber {
            numericDigitLabel.textColor = kGreenColor
        }else{
            numericDigitLabel.textColor = UIColor.red
        }
        if existOrNotSpecialCharacter {
            specialCharacterLabel.textColor = kGreenColor
        }else{
            specialCharacterLabel.textColor = UIColor.red
        }
        if existOrNotCapitalCharacter{
            uppercaseCharacterLabel.textColor = kGreenColor
        }else{
            uppercaseCharacterLabel.textColor = UIColor.red
        }
        if existOrNotlwerCharacter{
            lowercaseCharacterLabel.textColor = kGreenColor
        }else{
            lowercaseCharacterLabel.textColor = UIColor.red
        }
        if (newString.characters.count) >= 8 && (newString.characters.count) <= 50 {
            minimumEightCharacterLabel.textColor = kGreenColor
        }else{
            minimumEightCharacterLabel.textColor = UIColor.red
        }
        if usernameSameOrNot{
         userNameCannotBePasslabel.textColor = kGreenColor
        }else{
         userNameCannotBePasslabel.textColor = UIColor.red
        }
        return false
    }
    return true
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
如果textField==newPasswordTextField{
让newString=NSString(string:textField)。
// MARK: - Validation for  Textfield

func isValidAllFields() -> Bool {
    var isValid = true
    var errorMessage : String = ""
    let showAndReturn : () -> Bool = { Void -> Bool in
        AppUtility.showAlert(message: errorMessage, isSuccess: false)
        return isValid
    }

    let showAndReturnWithoutToast : () -> Bool = { Void -> Bool in
        return isValid
    }

    if (oldPasswordTextField.text ?? "").isEmpty || (oldPasswordTextField.text?.trimmingCharacters(in: .whitespaces).characters.count)! == 0  {
        isValid = false
        errorMessage = kOldPasswordEmptyMessage
        return showAndReturn()
    }

    if (newPasswordTextField.text ?? "").isEmpty || (newPasswordTextField.text?.trimmingCharacters(in: .whitespaces).characters.count)! == 0  {
        isValid = false
        errorMessage = kNewPasswordEmptyMessage
        return showAndReturn()
    }

    if (confirmPasswordTextField.text ?? "").isEmpty || (confirmPasswordTextField.text?.trimmingCharacters(in: .whitespaces).characters.count)! == 0  {
        isValid = false
        errorMessage = kConfirmPasswordEmptyMessage
        return showAndReturn()
    }

    if oldPasswordTextField.text != UserDefaults.standard.object(forKey: kOldPassword) as? String {
        isValid = false
        errorMessage = kCorrectOldPasswordMessage
        return showAndReturn()
    }

    if  (newPasswordTextField.text?.characters.count)! < 8 || (newPasswordTextField.text?.characters.count)! > 50 {
        isValid = false
        return showAndReturnWithoutToast()
        // errorMessage = "New password should not be less than 8 characters and more than 50 characters"
    }

    if !checkTextNumber(text: newPasswordTextField.text!) {
         isValid = false
         return showAndReturnWithoutToast()
         // errorMessage = "New password must contain at least 1 Numeric digit"
    }

    if !checkSpecialCharacter(text: newPasswordTextField.text!) {
        isValid = false
        return showAndReturnWithoutToast()
        // errorMessage = "New password must contain at least 1 special character"
    }

    if !CapitalLetter(text: newPasswordTextField.text!) {
        isValid = false
        return showAndReturnWithoutToast()
        //errorMessage = "New password must contain at least 1 Upper case character"
    }

    if !lowerCaseLetter(text: newPasswordTextField.text!) {
        isValid = false
        return showAndReturnWithoutToast()
        // errorMessage = "New password must contain at least 1 Lower case character"
    }

    if !checkUserName(text: newPasswordTextField.text!) {
        isValid = false
        return showAndReturnWithoutToast()
    }

    if confirmPasswordTextField.text != newPasswordTextField.text{
        isValid = false
        errorMessage = kNewPassAndCofirmSameMessage
        return showAndReturn()
    }
    return isValid
}