サードパーティ製キーボードで貼り付けができないのはなぜか
キーボードのツールバーに描かれた貼り付けボタンと、iOSが昔から用意している貼り付けメニューは別物です。フルアクセスを必要とするのは、そのうち片方だけです。
文字は打てる、自動修正も効く、見た目のテーマもきちんと反映されている。それなのに、キーボードの上に並んでいる貼り付けボタンを押すと何も起きない、あるいは貼り付いてほしかった場所に短いメッセージが出るだけ。これはキーボードが壊れているわけではありません。特定の一つのボタンだけが、まだ与えられていない許可を求めている状態です。
「貼り付け」と呼ばれるものが二つある
iOSでは、キーボードをまったく介さずに貼り付けができます。テキスト入力欄の中をダブルタップするか長押しし、選択や全選択を経て、文字の上に出てくる小さなメニューから貼り付けを選ぶ、あの操作です。あのメニューは入力欄そのものが持っているもので、下に表示されているキーボードの持ち物ではありません。だから純正キーボードでも、サードパーティ製キーボードでも、フルアクセスがオフのままでも同じように動きます。貼り付けを実行しているのがキーボード拡張ではないからです。
これに対して、キーボードのツールバーに組み込まれた貼り付けボタンは、まったく別の仕組みです。このボタンが働くためには、キーボード拡張自身がシステムのクリップボードに手を伸ばして中身を読み、利用者に代わって入力欄へ差し込む必要があります。システムのメニューではなく、拡張機能の中で走るコードです。だからシステムのメニューが一度も求める必要のなかった許可を、このボタンだけが求めることになります。
なぜ拡張機能はクリップボードを読めないのか
キーボード拡張は既定でサンドボックスの中に置かれています。クリップボードに関して言えば、その理由はそこに入りうる中身にあります。メッセージから取り出したワンタイムコード、パスワード管理アプリからコピーしたパスワード、ウォレットや銀行アプリから写したカード番号。もしどのキーボード拡張であっても、有効になった瞬間に黙ってペーストボードを読めるとしたら、それはすべての端末で、すべてのキーボードについて、常に成立するリスクになります。だからiOSは、利用者が明示的に許可するまで、拡張機能の内側からのクリップボード参照を止めています。
その明示的な許可がフルアクセスです。ここで少し面倒なのは、これが個別の許可を選ぶメニューではなく一つのスイッチだ、という点です。クリップボードのためにオンにすると、ネットワーク接続と親アプリとの共有ストレージについても同じサンドボックスが同時に緩みます。クリップボードだけを使うつもりのキーボードでも例外ではありません。スイッチを入れたときにiOSがあの強い警告を出すのは、まさにこのためです。システムの側からは、そのキーボードが実際にどれを使うのかを知る手立てがなく、言えるのは「どれも技術的には可能になった」ということだけだからです。
オンにする手順
- 設定App →「一般」→「キーボード」→「キーボード」を開きます。
- 貼り付けボタンを使いたいキーボードの名前をタップします。
- 「フルアクセスを許可」をオンにし、続けて出てくる警告を確認して進みます。
再起動は必要ありません。入力していたアプリに戻れば、次のタップから貼り付けボタンが働くはずです。もし戻ってもまだ反応しない場合は、そのアプリを一度終了して開き直すと、キーボード拡張が新しい状態で読み込まれます。
オンにしたくない場合
オンにしない選択も十分に成り立ちます。前半で説明したiOS標準の貼り付けメニューは、どのキーボードでも、フルアクセスがオフのままでも変わらず使えます。拡張機能をまったく経由しないからです。フルアクセスをオフのままにして失われるのは、キーボード上の貼り付けボタン、つまり操作を短縮するための入り口だけで、貼り付けそのものができなくなるわけではありません。手数が一つ二つ増えるのを許容できるなら、許可を与えずに同じことを達成できます。
判断の材料にすること
フルアクセスを入れるかどうかを決めるときは、そのキーボードが何のためにこの許可を使うと説明しているかを読むのがいちばん実際的です。クリップボードのボタンのためだけ、と明示されているものと、同期や検索のために外部と通信するもの、どちらもフルアクセスという同じ一つのスイッチを使いますが、意味するところは違います。説明が見当たらない、あるいはあいまいなキーボードについては、オフのままで使い、標準のメニューで貼り付けるという運用が無難です。
よくある質問
キーボード上の貼り付けボタンが押しても反応しません。
そのボタンはキーボード拡張の内側からシステムのクリップボードを読む必要があり、iOSは既定でそれを止めています。設定App →「一般」→「キーボード」→「キーボード」→ そのキーボードの名前、と進んで「フルアクセスを許可」をオンにしてください。
フルアクセスをオンにせずに貼り付ける方法はありますか。
あります。入力欄を長押しするかダブルタップして、出てきたメニューから貼り付けを選んでください。これは入力欄が持っているシステムの機能で、キーボードの機能ではないため、どのキーボードでも、フルアクセスがオフでも動きます。
貼り付けのためだけにオンにすると、パスワードまで渡すことになりますか。
パスワードや決済の入力欄については、何を入れていてもiOSが純正キーボードを強制するため、そこから読まれることはありません。ただしフルアクセスはサンドボックス全体を緩めるスイッチなので、そのキーボードが説明している用途を確認してから入れる価値はあります。
自分のキーボードで試す
Kiboは、本物のメカニカルキー音とテーマ、RGBバックライト効果を備えたiPhone向けの無料カスタムキーボードです。アカウント登録も広告もなく、フルアクセスをオフにしたままでも使えます。