要@rmaddy 回答。对于每次textField
编辑,它将调用该方法并检查该SPECIFIC textField
和enable or disable barButtonItem
. 但问题是关于启用或禁用 UIBarButtonItem,如果 6 个文本字段中的任何一个具有文本,则应启用按钮。如果没有文本,那么只有它应该被禁用。textFields
因此,除了在您的视图中迭代所有内容之外别无选择。而不是为每个textField
您可以使用的目标编写目标UITextFieldTextDidChangeNotification
只需在 : 方法中添加该通知并在:viewWillAppear
方法中删除它viewWillDisappear
看看这段代码..
-(void)viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(validateFields) name:UITextFieldTextDidChangeNotification object:nil];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self name:UITextFieldTextDidChangeNotification object:nil];
[super viewWillDisappear:animated];
}
- (void)validateFields {
// I think you would have outlet for all textFields.So you can check the textfields having text or not ..
if([textField1.text length] || [textField2.text length] || ....){
[yourBarButton setEnabled:YES];
}else{
[yourBarButton setEnabled:NO];
}
}
更新:
@rmaddy 答案也可以。不要忘记在他的答案的其他部分查看评论。现在这取决于一个用户选择的方法..