2012-06-17 49 views
0

存在我有一个简单的问题,那就是你如何检查电子邮件存在如何检查电子邮件地址的目标C可可

我看到的最近的文章中这样的代码:

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

    BOOL stricterFilter = YES; 
    NSString *stricterFilterString = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
    NSString *laxString = @"[email protected]+\\.[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,我该如何返回一个动作?

+0

它真的清楚似乎 不是因为你是问不是实际验证的电子邮件地址,但别的东西。请解释你想达到什么。 – JustSid

+0

您能否解释“如果BOOL返回YES或NO与NSTextField返回一个操作”?我不确定你想要做什么。 – Vervious

+0

您可能想要使用标签或NSLog返回YES或NO。无法检查某个特定地址是否有效,只能检查它是否正确输入 – Phillip

回答

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; 
} 
+0

有一个问题,但我正在为Mac应用程序,而不是iPhone的可可。你可以改变这个mac吗? –

相关问题