上部に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
メソッドが検索テキストとして空の文字列を返すことです。したがって、ユーザーが電話に向かって話しているのか、それともフィールド内のすべてのテキストを削除したのかを知る方法はありません。この動作は予期されたものですか?