読者です 読者をやめる 読者になる 読者になる

日本語キーボードの変換候補表示方法の変更への対応

iOS5で、日本語キーボードの変換候補表示方法が変わったことに、みなさんすでに気付いていることと思います。

iOS4.xでは、以下のように、カーソルの近くに表示される仕様でした。

iOS5では、以下のように、変換候補の表示領域が固定で確保されるようになったので、画面の一部のボタンなどが隠れてしまうようになりました。

それに対応できるようにするために、iOS5から、キーボードの大きさが変わったことを、アプリで検知するためのNotification(UIKeyboardWillChangeFrameNotification)が新たに追加されました。

それを使って、隠れてしまう部分のサイズや、表示位置を調整する必要があります。
SysStatsMonitorで、その対応を実施中なのですが、その結果、以下のようになる予定です。

具体的なコーディングについては、以下の記事を参考にさせていただきました。

画面いっぱいのUITextViewがキーボードに隠れないようにする « LANCARD.LAB|ランカードコムのスタッフブログ

あと、1点注意すべきことがあります。
UIKeyboardWillChangeFrameNotificationは、iOS5から追加された機能なので、iOS4.xをターゲットとするアプリの場合は、OSのバージョンをチェックして、iOS5.0以降のときだけ、有効になるよう考慮が必要です。(iOS4.xでこのNotificationを使用すると、アプリが異常終了します)

チェックの方法は、前回の記事(iOSのバージョンチェック方法 - The iPhone Development Playground)で説明していますので、必要であれば、参考にしてください。