1

ユーザーがポップアップキーボードに表示される検索ボタンを押した後、辞書を検索するアプリを作成しています。辞書を検索するのに時間がかかるので、UIActivtyIndi​​catorを追加したいと思いました。問題は、次のコード行をどこに追加すればよいかわからないことです。

[loader startAnimating];

UITexfieldDelegateProtcolメソッド(以下のコードを参照)に追加すると、検索の実行中にキーボードが数秒間フリーズするためです。その後、キーボードはそれ自体を削除し、アプリはUIActivityViewを表示せずに結果を表示します。

- (BOOL)textFieldShouldReturn:(UITextField *)textField

    [textField resignFirstResponder];
    [loader startAnimating]; //loader is the name of the activityindicator
    [self findSearchWords]; //Starts the dictionary search

return YES;

次の行を削除するとします。

[self findSearchWords];

次に、UIActivtyIndi​​catorが表示されて回転を開始しますが、検索はもちろん実行されません。

したがって、私の質問は、UIActivityIndi​​catorのメソッド「startAnimating」をどこに実装すればよいのかということです。そうすれば、検索の実行中に表示されて回転します。また、他のUITextFieldDelegateProtocolメソッドにメソッド(startAnimating)を実装しようとしましたが、成功しませんでした。

4

1 に答える 1

1

アクティビティ インジケーターを追加する場合は、別のスレッドで検索を実行する必要があります。これは、メイン スレッドにアクティビティ インジケーターを追加し、同じスレッドで検索を実行すると、検索プロセスによってロックされるため、アクティビティが表示されないためです。

于 2012-05-15T20:41:02.473 に答える