Swiftで遊ぼう! - 979 - UITextFieldのプロパティ: inputView
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
オリジナルアプリ作りに奮闘中!
誕生日データを入力するためにオリジナルのポップオーバーを使ったら便利だと思って実装しました。
ところが読者のberrymuchさんから「iOSヒューマンインターフェイスガイドライン」に準拠していないという指摘をうけました(T_T)
どうせ作るならAppStoreで受け入れられるアプリを作りたいのでガイドラインに準拠させていくことにします。
ユーザーからの入力は基本、キーボードを使用するようになっています。するとシステムで用意されていないキーボードを使用したい場合、カスタムキーボードを用意しなきゃいけないのかなって最初は思いました。
しばらくググって調べてみると、UITextFieldの場合、標準キーボードの代わりにUIViewクラスの「inputView」が利用できることがわかりました。それに加え「inputAccessoryView」を使えばUIToolbarも実装できます。iPhoneとiPadのどちらでも同じように使用できるんで、ポップオーバーの実装をそのままinputViewに変更しました。
しかし、1つだけ問題があります。iPadではiPhoneで存在しない謎のメニューがUIToolbarとUIDatePickerの間に出現します。
これをどうやったら隠すことができるんでしょうか?
とりあえず見た目は同じにできましたがまだ実装が追いついていません。というのもinputViewのデザインをすべてコードでしないといけないんで、NumpadViewの実装も大変なんです。
たぶん、ストーリーボードを使ってデザインできると思うので、もう少しInterface Builderの使い方も勉強した方がよさそうですね...