【问题标题】:How to show hidden UITextFields based on other UITextField input如何根据其他 UITextField 输入显示隐藏的 UITextFields
【发布时间】:2014-07-23 14:20:20
【问题描述】:

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

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

我需要的是,当我在位置字段中输入超过 1 个数字时,我需要显示地址和 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;
 }

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

【问题讨论】:

    标签: ios objective-c uitextfield


    【解决方案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 !
    }
    

    【讨论】:

    • 回复而不是重播
    • 那你还是没有做对。 @Bejibun 的回答应该很完美。
    • 为声誉点赞,如果有帮助的话
    • @Stonz2 它只添加一个数字,例如 1 到 9,但我需要更多的 1,例如 2 到 9 ,10,11..ect 也请给我任何想法
    • 我刚刚添加了我的答案。
    【解决方案2】:
    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
    {
    
    }
    

    仅在文本字段变为活动状态时调用,因此仅调用一次,因此您必须在

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

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

    【讨论】:

    • 感谢您的回复,但它不适合我。当我输入两个数字(如 11、12、22、23、...等)时,它是有效的。但当我输入多个数字(如 2)时,我需要它9也。
    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2012-06-15
    • 2017-04-01
    • 2013-07-22
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多