私は iOS キーボード拡張機能を開発しており、キーボードでスクロール ジェスチャを使用しています。キーボードを使用しているときに、コントロール センターを上にスクロールすると、キーボードが正常に機能しなくなることがあります。コントロール センターが表示されるか、非表示になるかを検出する方法はありますか?
1 に答える
直接行うことはできません。あなたが知ることができるほとんどのことは、あなたのアプリが非アクティブ化され、その後再びアクティブ化されたことです. コントロールセンターのせいかもしれないし、通知センターのせいかもしれないし、電話がかかってきたのかもしれないし、ユーザーがアプリのスイッチャーに入ってまた戻ってきたのかもしれない...
試すことができる回避策は次のとおりです。
コントロールセンターが開かれたときの適応ラウンドコーナーや検出などの動作を有効にするのは、UIWindow サブクラスです。この UIWindow サブクラスは、おそらくあなたが望むことを行います。NSNotification にサブスクライブするだけで、ユーザーがコントロール センターを開くことに反応できます。Github の詳細な手順とセットアップ
https://github.com/aaronabentheuer/AAWindow
[AAWindow: これを実現する方法は、NSTimer を組み合わせて使用し、UIWindow で sendEvent を上書きして、ブロックせずにすべてのタッチを受信することです。したがって、基本的にすべてのタッチが画面の下端に近いかどうかを確認し、そうであればタイマーを 0.5 秒に設定し、このタイマーが実行されている間に applicationWillResignActive が呼び出されれば、ControlCenter が開いていることをほぼ確実に確認できます。ステータスバーがない場合、アプリが全画面表示になり、ユーザーがコントロール センターを起動するのに最大 3 秒かかる可能性があるため、時間は変化する必要があります。]
問題の正確な解決策を見つけるのに役立つことを願っています。