Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LoginViewController_ByExample: UIViewController {
- private var user = InputUser(email: "", password: "")
- private let userContract = InputUserContract()
- private let formValidator = ModelValidator()
- // MARK: - UITextFieldDelegate
- func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
- let delayed = {
- self.user.email = self.emailField.text ?? ""
- self.user.password = self.passwordField.text ?? ""
- // Validate in 1 line.
- let valid = (try? self.formValidator.validate(self.user, using: self.userContract)) ?? false
- // Update UI.
- // E.g. hide/display Login button based on 'valid' state.
- self.loginButton.isHidden = !valid
- }
- onMainQueue {
- delayed()
- }
- return true
- }
- }
Add Comment
Please, Sign In to add comment