質問

これは奇妙な問題ですが、私はこれを解決する方法に困惑しています - 私は UITableView カスタムuitableviewcellsがあります。各 UITableViewCell 二つ持ってる UITextFields そしてそれぞれ UITextField 処理する代表者にリンクされています textFieldDidEndEditing イベント。これは、ある場合を除き、完全に機能します。

問題

画面には「保存」ボタンもあり、ユーザーが編集すると問題が発生します UITextField 画面の他の場所をクリックせずに[保存]ボタンを直接クリックします。そのようなイベントでは、 saveAction メソッドはの前に呼び出されます textFieldDidEndEditing イベントとその結果、ユーザーの最後の編集が失われます。

NSLOGステートメントを使用してデバッグしようとしましたが、 textFieldDidEndEditing 確かに呼ばれています、それは後に呼ばれます saveAction イベント。

私は電話することを考えました textFieldDidEndEditing からのイベント saveAction しかし、それは私がどちらについて知らないので意味がありませんでした UITextField 編集中です。

どんな提案でも大歓迎です。

役に立ちましたか?

解決

–TextFieldDidBeGineDiting:DelegateメソッドがView Controllerで呼び出されたときにアクティブなテキストフィールドにメモを作成できます。

アクティブなテキストフィールドを指す割り当てられたプロパティを持っていて、-SaveActionを送信してください。

ヘッダ:

@property (nonatomic, assign) UITextField * editingTextField;

Mファイル:

-(void)textFieldDidBeginEditing:(UITextField *)textField{
self.editingTextField = textField;
}

-saveAction{
if(self.editingTextField)
    [self.editingTextField resignFirstResponder];

 //continue implementation
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top