0

簡単な質問があります。それは、メールが存在するかどうかを確認する方法です

最近の投稿でこのコードを見ました:

- (BOOL) NSStringIsValidEmail:(NSString *)checkString{

    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSString *laxString = @".+@.+\\.[A-Za-z]{2}[A-Za-z]*";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:checkString];
 }

私の質問は、BOOL が YES または NO を返す場合、どうすればアクションを返すことができるかということNSTextFieldです。

4

1 に答える 1

1

電子メールが正しいかどうかに関係なく、ラベルを作成し、ラベルのテキストを適切なメッセージに設定するだけです。

UITextFieldDelegate次のプロトコル メソッドを実装することで、ユーザーがテキスト フィールドに新しい文字を入力するたびにチェック ルーチンを実行できます。

- (BOOL)textField:(UITextField *)textField 
   shouldChangeCharactersInRange:(NSRange)range 
   replacementString:(NSString *)string {

   NSString *newText = [textField.text stringByAppendingString:string];
   if ([self NSStringIsValidEmail:newText]) {
      statusLabel.text = @"Valid.";
   } else {
      statusLabel.text = @"Not a valid email address.";
   }
   return YES;
}
于 2012-06-17T22:57:29.880 に答える