@rmaddyに答えます。textField
編集するたびに、そのメソッドが呼び出され、そのSPECIFIC textField
とのテキストの長さがチェックされますenable or disable barButtonItem
。ただし、問題はUIBarButtonItemの有効化または無効化に関するものであり、テキストを含む6つのtextFieldのいずれかでボタンを有効にする必要があります。テキストがない場合は、それだけを無効にする必要があります。textFields
したがって、ビュー内ですべてを繰り返す以外にオプションはありません。それぞれのターゲットを書く代わりに、textField
あなたは使うことができますUITextFieldTextDidChangeNotification
その通知を:methodに追加し、viewWillAppear
:methodで削除するだけです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の回答も機能します。彼の答えの他の部分にコメントを見るのを忘れないでください。今では、1人のユーザーが選択する方法によって異なります。