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 回答