※本記事は、旧ブログからの再掲です。

画面の下の方のテキストフィールドに入力する際に、キーボードがテキストフィールドの上に表示されてしまうことがあります。
その場合にはキーボードが表示されるのに合わせて、入力しようとしているテキストフィールドを隠れないように上に引っ張り上げます。
※今回はスクロールビューを使用している場合の方法です。
contentOffsetのサイズをキーボードの高さ分追加し、編集中のテキストフィールドを一番上に持ってきています。

キーボードの表示・非表示時に通知を受けるためには、事前にその登録が必要となります。
通知の登録/解除は viewWillAppear/viewWillDisappear などの処理の中で行います。
UIKeyboardWillShowNotification(キーボード表示前に通知)
UIKeyboardWillHideNotification(キーボード非表示前に通知)
同時に通知を受けとるメソッドも登録します。
keyboardWillShow:(キーボード表示前に呼ばれるメソッド)
keyboardWillHide:(キーボード非表示前に呼ばれるメソッド)

keyboardWillShow:メソッドでは、キーボードの表示のアニメーションに合わせてスクロールビューのcontentSizeとcontentOffsetを変更し、テキストフィールドを上に引っ張り上げています。
keyboardWillHide:メソッドでは、変更したcontentSizeを元に戻しています。

 

<おすすめの書籍>
私がUIKitを使用する時に一番お世話になった本です。とても分かりやすいので初心者の方にもオススメです。

 


Comments are closed.