diff --git a/SwiftValidator/Core/Validator.swift b/SwiftValidator/Core/Validator.swift index f9b806c..a5d41df 100644 --- a/SwiftValidator/Core/Validator.swift +++ b/SwiftValidator/Core/Validator.swift @@ -47,6 +47,26 @@ public class Validator { } } + // MARK: Public functions + + public func validateField(textField: UITextField, callback: (error:ValidationError?) -> Void){ + if let fieldRule = validations[textField] { + if let error = fieldRule.validateField() { + if let transform = self.errorStyleTransform { + transform(validationError: error) + } + callback(error: error) + } else { + if let transform = self.successStyleTransform { + transform(validationRule: fieldRule) + } + callback(error: nil) + } + } else { + callback(error: nil) + } + } + // MARK: Using Keys public func styleTransformers(success success:((validationRule:ValidationRule)->Void)?, error:((validationError:ValidationError)->Void)?) { diff --git a/Validator/ViewController.swift b/Validator/ViewController.swift index 6d37f64..f273e1a 100644 --- a/Validator/ViewController.swift +++ b/Validator/ViewController.swift @@ -78,4 +78,18 @@ class ViewController: UIViewController , ValidationDelegate, UITextFieldDelegate func hideKeyboard(){ self.view.endEditing(true) } + + // MARK: Validate single field + // Don't forget to use UITextFieldDelegate + func textFieldShouldReturn(textField: UITextField) -> Bool { + validator.validateField(textField){ error in + if error == nil { + // Field validation was successful + } else { + // Validation error occurred + } + } + return true + } + } \ No newline at end of file