由于我是ios的新手,所以我知道之前曾有人问过这个问题。 但是我在这些当中有困难。 我想验证电子邮件和密码,当用户输入正确的电子邮件和密码(带有正则表达式的8到10个字符)时,该按钮将启用并可以转到下一页。 但是如果电子邮件和密码不正确,则该按钮将被禁用。 正如我尝试过的,但是当用户单击按钮时它将起作用。

-(IBAction)clickOn:(id)sender
{
    NSString *emailReg = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailReg];

    if([emailTest evaluateWithObject:email.text] == NO)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"enter the Valid Mail id" message:@"Please Enter Valid Email Address." delegate:nil cancelButtonTitle:@"okay" otherButtonTitles:nil];
        [alert show];
    }
    HomePage *home=[[HomePage alloc]initWithNibName:@"HomePage" bundle:nil];
    [self.navigationController pushViewController:home animated:YES];
}

正如我这样认为

IBOutlet UITextField *email;
IBOutlet UITextField *pwd;

但是我不知道如何在验证电子邮件和密码时附加文本字段和方法以及如何禁用按钮,并且在两者都完美的情况下启用它们。

===============>>#1 票数:1 已采纳

在UIViewController中添加UITexTField的委托方法,并在viewDidLoad中将文本字段委托设置为self,或者也可以在InterfaceBuilder中进行设置。 默认情况下,应在viewDidLoad方法中将click button设置为disable。 还要设置按钮的IBOutlet。

self.email.delegate = self;
[self.button setEnabled:NO];

在您的ViewController中添加UITextfield的此委托方法

 - (void)textFieldDidEndEditing:(UITextField *)textField{
        if([textField.text length]>8){

            NSString *emailReg = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
            NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailReg];

            if ([emailTest evaluateWithObject:email.text] == NO){

                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"enter the Valid Mail id" message:@"Please Enter Valid Email Address." delegate:nil cancelButtonTitle:@"okay" otherButtonTitles:nil];
                [alert show];
                [button setEnabled:NO]
            }else{
                [button setEnabled:YES]
            }
        }else{
             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"enter the Valid Mail id" message:@"Please Enter Valid Email Address." delegate:nil cancelButtonTitle:@"okay" otherButtonTitles:nil];
                [alert show];
        }
}

您也可以在上述方法中添加密码逻辑。 我已指导您实现功能的技术。

然后仅出于导航目的实现onClick方法

-(IBAction)clickOn:(id)sender
{
    HomePage *home=[[HomePage alloc]initWithNibName:@"HomePage" bundle:nil];
    [self.navigationController pushViewController:home animated:YES];
}

===============>>#2 票数:0

首先,您需要在这样的接口中设置UITextfield委托。

在此处输入图片说明

然后在viewdidload方法中将委托分配给您的Textfield

email.delegate=self;
pwd.delegate=self;

然后需要在UITextfield委托方法(例如,

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

    [textField addTarget:self
                  action:@selector(textFieldDidChange:)
        forControlEvents:UIControlEventEditingChanged];
}

- (void)textFieldDidChange:(UITextField *)textField {
    if (![email condition not matched ]|| [[pwd.text length]>8]) {


        NSLog(@"Button Hide");
    } else {
           NSLog(@"Button Show");

    }
}

  ask by Narendra Pandey translate from so

未解决问题?本站智能推荐:

4回复

IOS 7中的电子邮件地址验证

我在我的应用程序中有联系表,因为我需要验证电子邮件ID,我已经找到了一些用于验证电子邮件ID的解决方案,但是使用验证方法时会显示警告。 电子邮件验证码: 在返回它显示警告像 邮件的本地声明隐藏实例变量。 我正在使用JSON将所有日期发送到我的服务器,请告诉我如何
1回复

试图在iOS中验证电子邮件,崩溃不确定为什么?

我正在使用此处提供的代码进行验证检查一个电子邮件地址在iOS上是否有效 ,在这个SO答案中我只是调用这样的方法 然后在我的代码中如下: 我添加了NSLog以查看是否可以获得输出,但它现在仅在浅蓝色lldb错误的NSLog上崩溃。 任何帮助,将不胜感激。
1回复

电子邮件,密码,名称的UITextField验证

我正在我的应用程序中开发注册功能。 我有一些UITextFields如电子邮件,密码,用户名,名字....我想在使用这些信息向服务器发出请求之前验证它们。 现在我在关闭键盘时验证它们: 但是,当我没有用textFieldShouldReturn方法关闭keyPad时,我无法验证我输入
4回复

验证ios中的电话号码[重复]

这个问题已经在这里有了答案 : 5年前关闭。 验证电话号码iOS (9个答案) 我在验证电话号码时遇到问题,例如(999) 855-6666 如何验
2回复

iOS中的手机号码验证问题

我正在开发一个iOS应用程序,在其中键入用户时,我必须在其中验证用户的电话号码。 条件如下: 如果用户输入任何其他字符,则不应在文本字段上打印任何内容。 我正在- (BOOL)textField:(UITextField *)textField shouldChangeCha
2回复

在IOS7中对文本字段进行更多验证

嗨我正在验证多一个文本字段它不能正常工作,例如,如果有4个字段意味着它的验证工作在3个字段上它不工作在第4个我尝试使用其他如果在目标c中我们如何正常使用c和其他语言但其他如果不可用请告诉我如何解决这个问题。 在上面的代码中,第一个验证不起作用请告诉我是否有另一种方法来验证多个文本字段,或
1回复

在iOS中使用各种验证来验证字符串

我一直遇到以下条件的有效字符串问题。 各自的条件如下: 字符串应包含MAX长度(为7),且不得小于6 第一个字符必须来自AZ(仅应考虑大写) 其余字符只能包含数字(0到9)。 这是我要验证A12342的字符串的示例(具有验证的期望输出) 在此先感谢您的帮
4回复

密码文本字段的顺序验证

如何验证密码的顺序值? 例如-如果用户输入密码1326或“ axdf”,则该密码有效。 如果使用输入1234或“ abcd”,则它无效。
1回复

验证组件后,ios 7 xcode 5.01应用程序无法启动

我在Xcode 5.01中收到一条警告,指示我需要验证组件。 我单击按钮进行验证,此后我的应用程序实际上并未在模拟器上启动。 我知道自己含糊不清,但我确实想起了有关验证组件的消息。 Xcode说该应用程序正在模拟器上运行,但我再也看不到我的应用程序出现在模拟器上了。 我已经清理了
2回复

IOS:在用户界面上进行字段验证的最佳做法

在我的应用程序中,我想验证该字段中的user inputs 。 例如 如果textfields为空。 或电子邮件格式正确 我不想在ViewController中添加验证逻辑,也不想将UIView传递给Validator类 我有多个这样的屏幕。 有关验证屏幕