1

UISearchBar が添付された UITableView があります。ユーザーがキーボードの検索キーをタップすると、サーバーにリクエストを送信して情報を取得したいと考えています。すべて正常に動作しますが、resignFirstResponder は、リクエストが送信されるまでキーボードを閉じません。これは私が持っているものです

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [self.mySearchBar resignFirstResponder];
    [self.brain searchInfo: mySearchBar.text];
    [self.tableView reloadData];
}

私も使ってみました

[self.view endEditing:YES];

しかし、成功せずに...

4

3 に答える 3

0

searchInfo: メソッドに時間がかかるようです。リクエストが完了したら、非同期で動作するように変更し、別の場所で tableView を更新できます。

于 2012-02-20T15:26:43.710 に答える
0

UI の更新は、実行ループが終了した後にのみ実行されます。つまり、resignFirstResponder は、searchBarSearchButtonClicked:メソッド (およびメソッドの呼び出し) が終了した後にのみ有効になります。メソッドは応答を受け取るまで待たなければならないためsearchInfo:、resign メソッドはそれ以前には効果がありません。

非同期リクエストを送信する NSURLConnection を使用するようにアプリを書き直してください。Apple には、その方法に関する記事があります。手間はかかりますが、アプリの品質を向上させるには、この方法を使用する必要があります。

于 2012-02-20T18:34:45.877 に答える