1

送信者引数(文字列)を分析することにより、アクションメソッドがすべての検索を実行するNSSearchFieldがあります。

現在、検索機能(大きな配列にフィードする)はCPUを集中的に使用するため、検索フィールドが数秒間フリーズします。
それ以外の場合は、GUIがフリーズしないように、別のNSThreadをデタッチします。しかし、この場合、ユーザーが検索フィールドに別の文字を入力するたびに別の(「検索」)スレッドを切り離すため、これは不可能です。

NSSearchFieldがフリーズしないようにする別の方法はありますか?

ところで:私の推測はNOです。なぜなら、DevelopoerDocumentationの検索フィールドでさえ常にフリーズしているからです:)

4

3 に答える 3

2

GCDを使用しています。私は非同期キューを使用しており、ジョブは現在の検索パターンが呼び出されたものから変更されているかどうかを定期的にチェックし、変更されている場合は保釈します。これはかなりうまくいくようです。

于 2011-07-26T23:20:52.670 に答える
0

setSendsWholeSearchString:文字入力中の検索を止めるには使えないの?

于 2011-03-28T22:47:37.807 に答える
-1

ユーザーが何かを入力するたびに NSTimer を設定します。タイマーが既に設定されている場合は、無効にするか、スケジュールを変更します。

そうすれば、ユーザーの入力がどんなに速くても、N 秒ごとに検索を更新するよう求められるだけです。

于 2011-09-05T19:18:45.483 に答える