上部にUITableViewを含む iPhone アプリがあります。UISearchBarユーザーが に入力するとUISearchBar、UITableViewのコンテンツが適切にフィルタリングされます。ユーザーが検索バーのすべてのテキストを削除UISearchBarすると、ファーストレスポンダではなくなり、テーブルビューは再びフィルタリングされなくなります。関連するデリゲート コードは次のとおりです。
- (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if(searchBar.text.length == 0)
{
[self.searchBar resignFirstResponder];
[self.myModel stopFiltering];
[self.tableView reloadData];
}
}
これに関する問題は、ユーザーが自分の電話に話しかけ、検索バーで (Siri を介して) 音声からテキストへの変換を行おうとすると、textdidChangeメソッドが検索テキストとして空の文字列を返すことです。したがって、ユーザーが電話に向かって話しているのか、それともフィールド内のすべてのテキストを削除したのかを知る方法はありません。この動作は予期されたものですか?