如何根据其他UITextField输入显示隐藏的UITextFields

时间:2014-07-23 14:20:20

标签: ios objective-c uitextfield

我有3 UITextField s(位置,地址,邮编)。我隐藏了viewDidLoad中的两个字段。

Addres1.hidden = YES;
Zip1.hidden = YES;

我需要的是当我在位置字段中输入多个数字时,我需要显示地址和zip文本字段。 我试过这个:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    NSString *myString=Location.text;
    NSInteger myInt = [myString intValue];

    if (myInt >= 2) {
        Addres1.hidden = NO;
        Zip1.hidden = NO;
    }else{
        Addres1.hidden = YES;
        Zip1.hidden = YES;
    }
  return YES;
 }

但它不起作用。请告诉我在我的代码中我做错了什么。

2 个答案:

答案 0 :(得分:1)

NSInteger myInt = [myString length];

而不是

NSInteger myInt = [myString intValue];

并在此方法下撰写

- (void) textFieldDidChange:(UITextField*)textField

如果要比较输入的数字,只需创建一个包含您要比较的所有数字的数组。

NSMutableArray *numberOfArray = [[NSMutableArray alloc]init];
for (int i = 0; i < 100; i++)
{
  [numberOfArray addObject: i];
}

这个方法里面:      - (void)textFieldDidChange:(UITextField *)textField

if ([numberOfArray containsObject:myInt])
{
  Do whatever you want here !
}

答案 1 :(得分:0)

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{

}
仅当textfield变为活动状态时才会调用

,因此只调用一次,因此您必须在

中编写逻辑
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

}

因为您在textfield中输入的每个字符都会调用此委托