私のアプリでは、登録画面でUITextField
とフッタのSubmitボタンを含むtableView
があります。私は最後のTextField
に値を入力し、送信ボタンを押す(キーボードを辞めることなく)以外はすべて正常に動作します。テキスト編集が終了したときにのみ値が入力されるため、私の関数は値を表示しません。私はデリゲートを使って価値を得ています。iOS UITextField resignFirstResponder issue
私のコードは次のとおりです。customcell.mで
:私のViewControllerで
- (void)textFieldDidEndEditing:(UITextField *)textField {
if ([textField.text length] >0) {
[self.cellImageview setImage:editImage];
}
else{
[self.cellImageview setImage:defaultImage];
}
[_delegate signUpTableCell:self didUpdateValue:textField.text inTextField:textField];
}
:
-(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField {
NSLog(@"cell:%@ value: %@ textfield value:%@ ", cell, value, textField.text);
[registerDictionary setValue:value forKey:textField.placeholder];
NSLog(@"registerDictionary:%@", registerDictionary);
}
問題:私がクリックしたときに
最後のTextField値はnilであります送信ボタンで、おそらく テキストフィールドの編集が終了しない限り、 は呼び出されません。空の場所をクリックしてキーボードを辞めるとうまくいきます。この問題を回避する方法はありますか?
はい、私は動作しませんでした。それは最初のレスポンダーを辞めるが、値を得ることができない –
あなたのキーボードは実際に離れて、 'textFieldDidEndEditing()'メソッドが呼び出されていますが、 'didUpdateValue()'は呼び出されません。 'resignFirstResponder()'を手動で呼び出すことでそれらのメソッドのどれかが呼び出されているかどうか確認できますか? –