Skip to content

Instantly share code, notes, and snippets.

@f1fe
Created November 12, 2012 21:44
Show Gist options
  • Save f1fe/4062131 to your computer and use it in GitHub Desktop.
Save f1fe/4062131 to your computer and use it in GitHub Desktop.
Boilerplate code to validate an email/username UITextField and password UITextField before taking action
- (void)viewDidLoad
{
[super viewDidLoad];
self.finishButton.enabled = NO;
self.emailTextField.delegate = self;
self.passwordTextField.delegate = self;
}
#pragma mark - UITextFieldDelegate methods
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (textField == self.emailTextField) {
if (self.passwordTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
}
} else if (textField == self.passwordTextField) {
if (self.emailTextField.text.length > 0 && self.passwordTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
}
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
if (self.passwordTextField.text.length < 1 || self.emailTextField.text.length < 1) {
[self.finishButton setEnabled:NO];
}
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// enable the arrow if we have enough data
if (textField == self.emailTextField) {
if (string.length > 0 && self.passwordTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
} else if (string.length == 0 && range.location > 0 && self.passwordTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
} else {
[self.finishButton setEnabled:NO];
}
} else if (textField == self.passwordTextField) {
if (string.length > 0 && self.emailTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
} else if (string.length == 0 && range.location > 0 && self.emailTextField.text.length > 0) {
[self.finishButton setEnabled:YES];
} else {
[self.finishButton setEnabled:NO];
}
}
return YES;
}
- (BOOL) textFieldShouldReturn:(UITextField *) textField {
[textField resignFirstResponder];
if (textField == self.emailTextField) {
[self.passwordTextField becomeFirstResponder];
}
if (textField == self.passwordTextField) {
[self finishAction:nil];
[self.emailTextField resignFirstResponder];
}
return YES;
}
- (IBAction)finishAction:(id)sender {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment