1

1 つのビューに多くのテキストフィールドがあり、ユーザーがすべての詳細を入力して保存ボタンを押す代わりに、そこに入力された電子メール ID のみを検証したいと考えています。ユーザーが次の textField に移動したときにラベルにエラー メッセージを表示する方法

NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
if([emailTest evaluateWithObject:self.emailidTexField.text] == NO)
{
   // UILabel besides the text field and when the user goes to next field logic here.
}
4

7 に答える 7

2
This may help... try this

-(void)textFieldDidEndEditing:(UITextField *)textField
{
    if ([textField isEqual:emailidTexField])
     {
        NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
        NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
        if([emailTest evaluateWithObject:self.emailidTexField.text] == NO)
             {
               [emailidTexField becomeFirstResponder];
             }
      else{
               [Yournexttextfield becomeFirstResponder];
           } 
      }
}
于 2013-08-02T07:42:00.907 に答える
1

テキスト フィールドのデリゲートとして自分自身を追加し、 で検証を実行できますtextFieldDidEndEditing:endEditing:デリゲート メソッドが確実に実行されるように、保存ボタンが押されたときに必ずビューを呼び出してください。

于 2013-08-02T06:11:01.507 に答える
1
 - (BOOL)textFieldShouldReturn:(UITextField *)textField {
      NSLog(@"%d",textFiled.tag);
      if(textField.tag==xxx){
    //check valid here
      }
      return YES;
  }
于 2013-08-02T06:09:20.243 に答える
1
 NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
 NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
 if([emailTest evaluateWithObject:self.emailidTexField.text] == NO)
 {
    [your next field becomesfirstresponder];
 }

コントロールを次のフィールドに移動するには、次のテキストフィールドを最初のレスポンダーにします。

于 2013-08-02T06:13:35.777 に答える
0

テキストフィールドのデリゲートを設定し、UITextFieldデリゲートメソッドに次のコードを記述する必要があります

-(void)textFieldDidEndEditing:(UITextField *)textField
{
    if ([textField isEqual:emailidTexField])
     {
        NSString *emailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
        NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
        if([emailTest evaluateWithObject:self.emailidTexField.text] == NO)
             {
               [emailidTexField becomeFirstResponder];
             }
      else{
               [Yournexttextfield becomeFirstResponder];
           } 
      }
}
于 2013-08-02T06:13:26.810 に答える