少し問題があります。オブジェクトのプロパティを設定する私の TableView には 2 つの textFields があります。そうするために、文字列が実際にオブジェクトに設定される前に、ユーザーに textField に何かを書き込むように強制したいと考えています。だから基本的に簡単な([textField.text length] > 0)
こと。しかし、ユーザーが2つのテキストフィールドの両方に文字列を書き込んで、最終的に「完了」ボタンを有効にする必要があることを望みます。UITextFieldDelegate
以前にこれを解決しましたが、次の方法でテキスト フィールドを 1 つだけ使用しました。
- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string];
self.doneBarButton.enabled = ([newText length] > 0);
return YES;
}
新しい問題に対する私の解決策なので、2 つの textFields を使用すると、次のようになります。
- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string];
if ([theTextField.placeholder isEqualToString:@"textField1"]) {
if ([theTextField.text length] > 0) {
enabledVokabel = YES;
} else {
enabledVokabel = NO;
}
}
if ([theTextField.placeholder isEqualToString:@"textField2"]) {
if ([theTextField.text length] > 0) {
enabledUebersetung = YES;
} else {
enabledUebersetung = NO;
}
}
self.doneBarButton.enabled = (enabledVokabel && enabledUebersetung);
return YES;
}
したがって、両方の textFields (textField1 と textField2) がテキストで満たされているときに、doneBarButton を有効にしたいと考えています。しかし、ユーザーがdoneBarButtonに書いたばかりのテキストを削除した場合、textFieldsが空になるとすぐに無効になるようにしたいのです。そのようには機能しません。解決策はありますか?それとも、それを解決するためのより良い方法ですか?