画面の下の方にある UITextField がキーボードの影に隠れる




画面上に UITextField をいくつか配置したアプリを作っています。
開発中のアプリは要素が多いので説明用にアプリを作りました。

画面の下の方にある UITextField に文字を入力しようとしたら、キーボードの影に隠れてしまって何が入力されているのかがまったくわかりません。

Android アプリも同じことがあったのですが対応方法は簡単です。慣れているからだけかもしれませんが・・・

iOS アプリではどうやって対応するのかを調査しています。といっても検索したらすぐに見つかりました。

参考 : キーボードが表示されたときに画面を動かす

実際に自分で作ってみないと理解できないので、上記ページを参考にしながら作って見ることにしました。



対応方法


  • キーボードが表示されたら UITextField をキーボードの上に移動させる
  • キーボードが非表示になったら元の位置に戻す
  • キーボードの改行が押されたらキーボードを非表示にして元の位置に戻す

懸念点

  • 複数行入力できる場合は改行でキーボードを非表示にすることができない
  • 行数が多いとキーボードの裏にいってしまいそう

やりたいこと


UITextField を上下に配置

画面の下に配置したUITextFieldをタップ

画面の下に配置したUITextFieldをタップするとキーボードが表示されます。しかし入力中のUITextFieldがキーボードの影で見えません。つまり、入力された文字がわかりません。さらに、キーボードを消す手段がありません。

やりたいことは

  • 入力中の文字がわかるようにUITextFieldをキーボードより上に移動させる
  • 入力が終わったらキーボードを非表示にして、レイアウトを元に戻す

条件

  • UITextField には改行は入力できないものとする

追加でやりたいこと

  • 改行が押されたら入力完了とする

やりたいことと対応方法がわかったので、あとは実装するだけ



今日はここまでにします。続きは後日追記します。

0 件のコメント:

コメントを投稿