uitextfielddelegateイベントの遅延
-
28-10-2019 - |
質問
これは奇妙な問題ですが、私はこれを解決する方法に困惑しています - 私は 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
}