2017-11-07 9 views
-1

2つのtextfielfdのテキストフィールドの検証を別々に実装したいが、私はできないので、両方のuplide代理人がいるが、両方のテキストフィールドに適用される。電子メールは、我々は、電子メールとモバイルの両方で別々にそれを適用することができます全く別にここで私が書いたコードがどのようにのみ10文字を受け付けない:パスワードと電子メールのテキストフィールドの検証

func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) { 
     if textField == textfieldemail 
       { 
        let providedEmailAddress = self.textfieldemail.text 

        let isEmailAddressValid = isValidEmailAddress(emailAddressString: providedEmailAddress!) 

        if isEmailAddressValid 
        { 
         print("Email address is valid") 
        } 
        else { 

         self.displayAlertMessage(messageToDisplay: "Email address is not valid") 

         } 
       } 
} 

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
    let charsLimit = 10 

    let startingLength = textField.text?.characters.count ?? 0 
    let lengthToAdd = string.characters.count 
    let lengthToReplace = range.length 
    let newLength = startingLength + lengthToAdd - lengthToReplace 
    return newLength <= charsLimit 

} 

答えて

0

あなたは、テキストフィールドにタグを付与していることをして、楽しいの内側にそのタグを確認することができますテキストフィールドを一意に識別します。テキストフィールド

emailIDTxtFld.tag = 1001 
mobileNoTxtFld.tag = 1002 

のためのテキストフィールド

emailIDTxtFld.delegate = self 
mobileNoTxtFld.delegate = self 

セットタグのためのあなたのそれぞれのViewController

セットデリゲートへ

割り当てUITextFieldDelegateさて、これらのメソッドを実装し

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
    let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string) 

    if textField.tag == 1002{ 
    //For MobileNo it will accept only 10 char 
     if newString.characters.count > 10{ 
      return false 
     }else{ 
      return true 
     } 
    }else if textField.tag == 1002{ 
    //your logic 
    } 
    return true 
} 

func textFieldDidEndEditing(_ textField: UITextField) { 
    if textField.tag == 1001{ 
     if textField.isValidEmail(){ 
      // Code 
     }else{ 
      print("Please Enter Vlaid Email ID") 
     } 

    }else if textField.tag == 1002{ 
     if textField.text?.characters.count == 10{ 
      // code 
     }else{ 
      //code 
     } 
} 
関連する問題