     }
 
     public func textFieldDidEndEditing(textField: UITextField) {
+        formDelegate?.formFieldWillValidate(formField)
         validation.validate(formField.text!, successHandler: {
             self.isValid = true
             self.formDelegate?.validateStateDidChange(true, errorMessage: nil)


    public func checkValidity() {
        isValid = true
        validation.validate(formField.text!, successHandler: {
            self.isValid = true
            self.formDelegate?.validateStateDidChange(true, errorMessage: nil)

    func isAllFormFieldsValid() -> Bool

    func formDidFinish()

    func formFieldWillValidate(formField: FormFieldProtocol)
}

extension FormFieldDelegate {
    func formFieldWillValidate(formField: FormFieldProtocol) {

    }
}

public class FormPresenter: NSObject {
