Kal*_*esh 3 objective-c uialertview ios
我想用文本字段显示UIAlertview.如果用户没有输入有效的电子邮件ID,则UIAlertview的ok按钮将被禁用.
我知道如何显示UIAlertview并禁用UIAlertview Ok按钮..
我的问题是 - (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView没有被称为为什么按钮被启用.
但是当用户按下Ok按钮时
- (void)alertView:(UIAlertView
*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
Run Code Online (Sandbox Code Playgroud)
叫做.
这是我的代码,
-(IBAction)forgotpassBtnclicked:(id)sender
{
UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
[alertview setAlertViewStyle:UIAlertViewStylePlainTextInput];
UITextField *textField=[alertview textFieldAtIndex:0];
textField.placeholder=@"enter your email id";
[alertview show];
}
#pragma mark Alertview delgate
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
UITextField *text1=[alertView textFieldAtIndex:0];
BOOL flag=[self validateEmail:text1.text];
return flag;
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
#pragma mark Email Validation
- (BOOL) validateEmail: (NSString *) email
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
// return 0;
return [emailTest evaluateWithObject:email];
}
Run Code Online (Sandbox Code Playgroud)
我不明白我做错了什么?
提前致谢...
UIAlertViewDelegate文件说alertViewShouldEnableFirstOtherButton:方法,
发送给代理人以确定是否应启用警报中的第一个非取消按钮.
您正在使用取消按钮创建警报@"ok",因为非取消按钮是nil方法未被调用.而是试着跟随,
UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
Run Code Online (Sandbox Code Playgroud)
此外,用户应该可以选择取消警报而无需输入文本.取消按钮是一种很好的用户体验.
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |