2017-11-15 6 views
0

firstsecondtheard이 내 코드하지만 문제는 사용자가 두 번째 확률값 내가 너무텍스트 필드가 비어있을 때 버튼을 사용하는 방법

 override func viewDidLoad() { 
      handleTextField() 
     fullname.delegate = self 
     username.delegate = self 
     email.delegate = self 
     password.delegate = self 
    } 


     func handleTextField(){ 
       fullname.addTarget(self, action: #selector(SignupVC.textFieldDidChange), for: UIControlEvents.editingChanged) 
       username.addTarget(self, action: #selector(SignupVC.textFieldDidChange), for: UIControlEvents.editingChanged) 
       email.addTarget(self, action: #selector(SignupVC.textFieldDidChange), for: UIControlEvents.editingChanged) 
       password.addTarget(self, action: #selector(SignupVC.textFieldDidChange), for: UIControlEvents.editingChanged) 
      } 
      @objc func textFieldDidChange(){ 
       guard let username = username.text, !username.isEmpty, let email = email.text, !email.isEmpty, let fullname = fullname.text, !fullname.isEmpty, let password = password.text, !password.isEmpty else { 
        signupBtn.setTitleColor(UIColor.lightText, for: UIControlState.normal) 
        signupBtn.isEnabled = false 
        return 
       } 
       signupBtn.setTitleColor(UIColor.white, for: UIControlState.normal) 
       signupBtn.isEnabled = true 
      } 
자신의 색상을 변경할 것입니다 를 입력하기 시작 후, 버튼 시동이 가능하다

답변

0

당신은이 같은 UITextFieldDelegate 구현해야합니다

override func viewDidLoad() { 
     super.viewDidLoad() 
     fullname.delegate = self 
     username.delegate = self 
     email.delegate = self 
     password.delegate = self 

     signupBtn.isEnabled = false 
    } 

    func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) { 
     if reason == .committed { 
      //textFieldDidChange() 
     } 
    } 

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
    if textField == username, let text = textField.text, !text.isEmpty { // your are typing the 2nd textfield 
     if let text = fullname.text, !text.isEmpty { // and the 1st textfield filled 
      signupBtn.isEnabled = true 
      signupBtn.setTitleColor(.green, for: .normal) 
     } 
    } 
    return true 
} 

    func textFieldDidChange() { 
     guard let username = username.text, !username.isEmpty, let email = email.text, !email.isEmpty, let fullname = fullname.text, !fullname.isEmpty, let password = password.text, !password.isEmpty else { 
      signupBtn.setTitleColor(UIColor.lightText, for: UIControlState.normal) 
      signupBtn.isEnabled = false 
      return 
     } 
     signupBtn.setTitleColor(UIColor.white, for: UIControlState.normal) 
     signupBtn.isEnabled = true 
    } 
+0

예 난 내 코드 남자 잘못 아무것도 몰라 내 질문을 확인 – mazenqp

+0

예 이번에는 문제가 shouldChangeCharact'에서 해결 될 수있다 ersIn 범위 '대리자 – ngbaanh

+0

어떻게 모든게 잘 작동하지만 사용자 시작 유형 후 버튼을 사용 – mazenqp

관련 문제