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