0

UITableView でいくつかのリストを表示しています。並べ替えの目的で、UISearchBar を使用しました。[キャンセル] ボタンの動作がおかしい

再現する手順

  1. 何かを検索する
  2. 検索中に、オンスクリーン キーボードを削除する [キャンセル] ボタンがあることに注意してください。
  3. 検索結果の 1 つの詳細をタップします
  4. その後、戻る
  5. 検索結果は引き続き表示され、検索バーは表示されますが、[キャンセル] ボタンがありません。
  6. そのため、アプリケーションを閉じて再度開くことなく、オンスクリーン キーボードを削除する方法はありません。

しかし、これらのシナリオはシミュレーターではなく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;    
}  

助けてください

4

1 に答える 1

1

この投稿を試してください。

UISearchDisplayControllerを使用することをお勧めします- 役に立つチュートリアルですか?

于 2011-01-18T11:43:48.427 に答える