更改UITextFields集合的属性

时间:2011-10-06 12:37:08

标签: iphone ios ipad

我在视图中有一组UITextFields。我需要禁用所有,然后启用它们。目前,我单独更改每个。有没有办法在循环中以编程方式执行此操作? TIA。

3 个答案:

答案 0 :(得分:1)

Use this it will help you enabled=NO or YES

for(id viewid in [self.view subviews])
    {
        if([viewid isKindOfClass:[UITextField class]])
        {
           UITextField *txt_temp = (UITextField *)viewid;
           txt_temp.enabled=NO;
         }
    }

答案 1 :(得分:0)

假设您的UITextField个实例保存在名为myFieldCollection的集合中,您可以执行以下操作:

- (void) disableFields {
    for (UITextField* field in myFieldCollection) {
        field.enabled = NO;
    }
}

- (void) enableFields {
    for (UITextField* field in myFieldCollection) {
        field.enabled = YES;
    }
}

我假设根据你的开场陈述,你已经将它们放在一个集合中。如果不这样做,您可以轻松使用Interface Builder为文本字段设置“引用插座集合”。

要使用上述方法,您只需执行以下操作:

//disable
[self disableFields];

//enable
[self enableFields];

答案 2 :(得分:0)

NSArray *array = [view subviews];

停用子视图:

[array makeObjectsPerformSelector:@selector(setEnabled:) withObject:(id)NO];

启用子视图:

[array makeObjectsPerformSelector:@selector(setEnabled:) withObject:(id)YES];

请注意 withObject:参数。在投射对象类型时,只需将布尔常量 YES NO 转换为 id