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