2011-10-06 75 views

回答

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; 
     } 
    } 
+0

谢谢。这是我正在寻找的。我曾尝试过这些变化,并没有奏效。我试过这个版本,它也没有工作。然后我意识到我需要用“self.myContactView子视图”来限定事物。优秀! –

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]; 
+0

我想我误解了这个问题。我的错。下面的答案是我正在寻找的。 –

0
NSArray *array = [view subviews]; 

禁用子视图:

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

启用子视图:

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

请注意withObject:参数在这里。只需施放布尔常量id当您施放对象类型!

+0

只是单挑:如果您使用ARC,则不允许将'BOOL'投射到'id'。假设你可以用'NSNumber'来包装它(就像'@ YES'),但是我遇到了'@ NO'的问题。 –