不具合発覚
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 では次へとかのアクションボタンが表示できなくて、色々実装したな。。。