2016-06-09 12 views

Antwort

7

Sie können immer textField shouldChangeCharactersInRange-Delegat verwenden, um die Anzahl der in textField zulässigen Zeichen zu behandeln. Haben Blick auf die Lösung unten zur Verfügung gestellt :) Hoffe, es hilft

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
     if(textField == self.emailTextField){ 
      if (textField.text.length < 30 || string.length == 0){ 
       return YES; 
      } 
      else{ 
       return NO; 
      } 
     } 
    } 

EDIT

Wie pro Ihre Kommentare Sie nicht das Textfeld Delegierten werden recieveing, also hier ist das, was können Sie tun :)

mit

In Ihrem Viewcontroller, bestätigen die UITextFieldDelegate,

YourViewController : UIViewController <UITextFieldDelegate> 

In Ihrem viewDidLoad oder viewWillAppear Setzen Sie den textField-Delegaten als self.

self.emailTextField.delegate = self; 
+0

Ich habe es versucht, aber ich kann nicht verbinden, um die Funktion zu delegieren. –

+0

können Sie mir eine funktionierende Probe geben. –

+0

@ mohith-p: Haben Sie Ihr Textfeld delegieren als Selbst ??? –

0

Wenn Sie auf die Schaltfläche Validieren klicken, stellen Sie die Taste Aktion Validate und den Code unten sehen, überprüfen Sie zuerst die beiden Textfeld leer ist oder nicht, wenn Sie Text geben dann erneut überprüfen Sie die gültige E-Mail-Typ oder nicht, dann werden alle Bedingungen erfüllt sind, dann wird Ihr Code und laufen,

-(IBAction)action:(id)sender 
{ 
    if (tfMail.text.length == 0 || tfPass.text.length == 0) 
    { 
     [self validatetextfield]; 
    } 
    else if (![tfMail.text isEqualToString:@""]) 
    { 

     NSString *emailRegEx = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
     NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx]; 
       //Valid email address 
     if ([emailTest evaluateWithObject:tfMail.text] == YES) 
     { 
       //Its validated put your success code, 
     } 
     else 
     { 
       UIAlertController *aler = [UIAlertController alertControllerWithTitle:@"Test!" message:@"Please Enter Valid Email Address. \nex. [email protected]" preferredStyle:UIAlertControllerStyleAlert]; 
       UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
        [self dismissViewControllerAnimated:YES completion:nil]; 
       }]; 

       [aler addAction:action]; 

       [self presentViewController:aler animated:YES completion:nil]; 
        //not valid email address 
      } 
    } 
} 

Warnmeldung Methode setzen: für mich

-(void) validatetextfield 
{ 
    if (tfMail.text.length==0) { 
     UIAlertController *aler = [UIAlertController alertControllerWithTitle:@"Email Field Empty!" message:@"Please Enter the Email" preferredStyle:UIAlertControllerStyleAlert]; 
     UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
      [self dismissViewControllerAnimated:YES completion:nil]; 
     }]; 

     [aler addAction:action]; 

     [self presentViewController:aler animated:YES completion:nil]; 
     [tfMail becomeFirstResponder]; 
    } 
    else if (tfPass.text.length==0) 
    { 
     UIAlertController *aler = [UIAlertController alertControllerWithTitle:@"Password Field Empty!" message:@"Please Enter the Password" preferredStyle:UIAlertControllerStyleAlert]; 
     UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 
      [self dismissViewControllerAnimated:YES completion:nil]; 
     }]; 

     [aler addAction:action]; 

     [self presentViewController:aler animated:YES completion:nil]; 
     [tfPass becomeFirstResponder]; 
    } 
} 

seine erfolgreich arbeiten, hoffen, dass seine hilfreich.