如何在所有字段填满时启用按钮?

时间:2015-02-24 13:12:02

标签: ios objective-c

我有一个视图控制器,我有两个文本字段和一个按钮。在viewDidLoad中,我已将按钮设置为禁用。现在我想在填满两个字段时启用按钮。请帮我怎么做。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您应该使用UITextFieldDelegate。让你的viewController实现委托方法。最重要的一个是- textFieldShouldReturn:方法。按下键盘的返回按钮时会调用它。你可以使用TextField&的resignFirstResponder。然后检查每个TextField的有效性文本。当所有textField都包含某些值时,您可以继续启用该组按钮。这将在您编辑最后一个文本字段时显示您的按钮&按下键盘的返回按钮。

如果您想在textFields填满文本时启用该按钮,则执行- textField:shouldChangeCharactersInRange:replacementString:。每次更改UITextField中的文本时,这都会启动。所以在这个方法中检查你所有的textField是一个很好的机会。

答案 1 :(得分:0)

这个怎么样?

-(void)viewDidLoad {
    textField1.delegate = self;
    textField2.delegate = self;
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (textField1.text.length>=1 && textField2.text.length>=1) {
        yourButton.enable = YES;
    } else {
        yourButton.enable = NO;
    }
}

我相信你已经完成了。

注意:

由于这是示例代码,我没有考虑修剪。

您需要修剪文本字段文本并比较大小,然后使用上面的代码。

答案 2 :(得分:-1)

@的 Tirthendu

你可以尝试下面的代码,我测试下面的方法,可能对你有用。

- (IBAction)btnProceedClick:(id)sender
{
    [self.view endEditing:YES];

    NSString *aStrMSG; //Here tfFullname & tfEmailAddress is UITextField

    if([tfFullName.text length] == 0)
    {
        aStrMSG = @"Please insert FullName";
    }
    else if([tfEmailAddress.text length] == 0)
    {
        aStrMSG = @"Please insert Email Address";
    }



    if([aStrMSG length] > 0)
    {
        showAlertView(aStrMSG);
//SET ALERT that Enter Value in UiTextField
    }
    else
    {
        //Set your Button Enable Here.. & Process Method
    }
}