概要
InputFieldもしくはTouchScreenKeyboard.Openでモバイルキーボードの領域外をタップすると、実行プラットフォームによっての挙動が違うため、Androidとiosの挙動について調査しました。
Androidの挙動
InputField
領域外をタップするとモバイルキーボードは閉じます。
タップ判定をUnityアプリ側から検出できないため、タップ箇所のUIに対してイベントは発生しません。
TouchScreenKeyboard.Open
領域外をタップするとモバイルキーボードは閉じます。
タップ判定をUnityアプリ側から検出できないため、タップ箇所のUIに対してイベントは発生しません。
iOSの挙動
InputField
領域外をタップすると、選択中のInputField上でなければモバイルキーボードを閉じます。
タップ判定はUnityアプリ側で検出でき、タップ箇所のUIに対してイベントが発生します。
モバイルキーボードはInputFieldのフォーカスが外れたことにより、OnDeselectからDeactivateInputFieldが呼ばれて閉じられています。
「Hide Mobile Input」にチェックを入れていた場合はInputField内のテキストを選択できますが、「貼り付け」「コピー」「切り取り」を行うことはできません。
TouchScreenKeyboard.Open
領域外をタップしてもモバイルキーボードは閉じません。
タップ判定はUnityアプリ側で検出でき、タップ箇所のUIに対してイベントが発生します。
また、モバイルキーボード表示中にTouchScreenKeyboard.Openを呼び出しても、前に呼び出したTouchScreenKeyboardのステータスは変わらないので注意。
投稿者プロフィール
最新の投稿
- 2023年10月9日プログラミング【ライセンス】GPL/LGPLライブラリについて
- 2023年8月19日その他【Pixiv】閲覧注意機能が反映されないときに確認すること
- 2023年4月30日プログラミング【JavaScript】ファイルの保存先をダイアログで指定する方法 – showSaveFilePicker()の使い方
- 2022年10月17日その他「NovelAI Diffusion」を使ってみた (Img2Img)