2014年12月6日 17:13
インライン変換はなぜ使えない? iOS向けサードパーティー製キーボードにまつわる制約の話
このスイッチをオンにすることにより、シェアードコンテナ(呼び出し元アプリと機能拡張とで各種データをやりとりするときに使用する領域)およびネットワークへのアクセスが可能になるからだ。画面には「開発元に情報を送信...」などと強めのメッセージが記載されているが、そのような機能が実装される可能性を踏まえてのものであり、実際に送信されなくても「フルアクセスを許可」することは必要だ。
ユーザインタフェースに制限が多いことも、機能拡張の仕様によるところが大きいと推測される。NSExtensionでは、アプリ間でデータをやり取りするためのプロパティキーを定義しており)、基本的には呼び出し側が想定した方法でしかリソースにアクセスできない。ソフトウェアキーボードと他のアプリをつなぐ処理はiOSが担っており、そこで定められた仕様を超える機能は実装が難しいのだ。
この文脈に従えば、「ATOK for iOS」や「Yahoo! キーボード」の両方が未変換文字列をカーソル近くに表示しながら変換作業を進める「インライン変換」をサポートしないことは説明がつく。もっとも、iOS標準のソフトウェアキーボードでは提供済の機能であるため、今後iOSがバージョンアップもしくはNSExtensionの仕様が変更されれば、難なく実現されるのかもしれない。