UITableView でいくつかのリストを表示しています。並べ替えの目的で、UISearchBar を使用しました。[キャンセル] ボタンの動作がおかしい
再現する手順
- 何かを検索する
- 検索中に、オンスクリーン キーボードを削除する [キャンセル] ボタンがあることに注意してください。
- 検索結果の 1 つの詳細をタップします
- その後、戻る
- 検索結果は引き続き表示され、検索バーは表示されますが、[キャンセル] ボタンがありません。
- そのため、アプリケーションを閉じて再度開くことなく、オンスクリーン キーボードを削除する方法はありません。
しかし、これらのシナリオはシミュレーターではなくiPhoneでのみ発生します。最初の画面に戻ると、キャンセル ボタンが表示されます。
これらのデリゲートを使用しました:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
searchBar.text = nil;
[searchBar resignFirstResponder];
isSearch = NO;
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
searchBar.showsScopeBar = NO;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:NO animated:YES];
return YES;
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
searchBar.showsScopeBar = YES;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:YES animated:YES];
isSearch = YES;
return YES;
}
助けてください