アプリケーションでキーボードが最初に呼び出されたときは、常に遅延 (2 ~ 3 秒) があります。この体験を改善する方法やコツはありますか? NSTreading を使用しようとしましたが、[textfield becomeFirstResponder] を使用すると、「メイン スレッドでのみ実行します」というエラーでクラッシュします。何か案は?
2 に答える
原則として、ドキュメントにスレッドセーフであると明確に記載されていない限り、バックグラウンド スレッドから UI 要素にアクセスしようとしないでください。
あなたの場合、バックグラウンドでキーボードをプリロードしようとしてもうまくいきません。キーボードはアプリケーション内だけで作成されるのではなく、システム全体で共有されることに注意してください。つまり、システムが一部のメモリをクリアする必要があると判断した場合、キーボードが表示されていない場合、キーボードを「キャッシュ解除」する可能性が高くなります。
これがシミュレーターで発生している場合は、テストを実行するたびにシミュレーターを終了していることが原因である可能性が最も高いです。その結果、テストを実行するたびにキーボードをロードする必要があります。ただし、これがデバイスで発生している場合は、デバイスのメモリが頻繁に不足している可能性があります。
そうは言っても、インスタント表示が非常に重要な場合は、いつでも目に見えないUITextField
ファーストレスポンダーを作成し、キーボードを強制的にロードするためにファーストレスポンダーをすぐに辞任するという古いトリックを使用することができます.
多分別のキーボードを試してみませんか?または、設定に入って入力オプションを調べ、キーボードに移動してみてください。ほとんどの場合、プログラミングが遅れているか、バックグラウンドでより多くのプログラムを実行していることが原因です