不具合発覚
iOSの端末で名前が入力できないとの問い合わせから判明しました。
調査
以前、showCupertinoModalPopup を使った際に、Focus と Cursor の挙動がおかしくなったことがあったので似たような問題かな?と思ったが違いました。
連絡をくれた方とやり取りすると、日本語が入力できないとのことだったのでキーボードの設定周りを中心に調査するようにしました。
原因
以下の条件で再現することがわかりました。
- キーボードを絵文字と Gboard のような他社製キーボードのみにしている
- TextField の
inputType
にTextInputType.name
を設定している
TextInputType.name
を指定すると、iOS では keyboardType
に namePhonePad
が設定されるのですが、他社製キーボードのみにしていると、該当のキーボードがないため日本語を入力するキーボードが選択できないため入力できなくなってしまっていました。
対応
inputType
を TextInputType.name
-> TextInputType.text
に変更し、
連絡をくれた方には暫定的に標準のキーボードを一時的に追加してもらいました。
雑感
正直、iOS のバグじゃね?ってなりました。
Android の開発の際は android:inputType
は意識的に設定するようにしてたので
TextInputType.name
が原因で不具合になるとは思ってもいなかったわけです。
調べてみると、iOS のキーボードタイプに関するバグの記事は結構見つかります。
iOS を開発している人に聞いてみても、
「email
しか設定しない」
「ほぼ設定しない。email
と numberPad
は使うけど numPad
も微妙に使えない。。。」
というような回答が。
確かに、TextInputType.number
を指定した際、iOS では次へとかのアクションボタンが表示できなくて、色々実装したな。。。