keyboardwillshownotificationエッジケース
-
25-10-2019 - |
質問
これは操作の順序の問題です
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[nc addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
そして、uitableviewcellにテキストボックスを追加します:
[textField addTarget:self
action:@selector(textFieldBegin:)
forControlEvents:UIControlEventEditingDidBegin];
[cell addSubview:textField];
TextFieldBeginでは、編集中のセルに移動するためにScrollTorowatIndexpathをスクロールします。
キーボードウィルショーでは、テーブルビューのフレームを調整してキーボードを可能にします。
TextfieldBegin 呼び出されます 前 キーボードウィルショー, 、したがって、初めて表示されると、スクロールする余地がありません。
この監視を修正するための称賛の方法はありますか?
解決
現在のスクロール位置は、開始時に変数に保存できます。その後、キーボードウィルショー通知で、その変数に保存されているポジションに再接続できます。
それにより、あなたが彼らが属している場所にあなたの異なるアニメーションを保つことができると思います。
他のヒント
を聞く代わりに UIKeyboardWillShowNotification
uitextfielddelegateメソッドに対応できます textFieldDidBeginEditing:
その方法でサイズを変更/スクロールします。 後 キーボードが表示されます。
所属していません StackOverflow