15

ユーザーが検索バーで編集を開始したときにページのナビゲーション バーを非表示にしたい、キャンセル ボタンも表示したい。
完了しましたが、UISearchBar Thanks to All を表示すると、キャンセル ボタンにアクセスできません。

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    self.navigationController.navigationBar.hidden=TRUE;
    CGRect r=self.view.frame;
    r.origin.y=-44;
    r.size.height+=44;

    self.view.frame=r;

    searchBar.showsCancelButton=TRUE;

}
4

6 に答える 6

16

このコードを使用して、キャンセル ボタンを表示/非表示にします。SearchBar

ユーザーが SearchBar SHow で編集を開始すると、[キャンセル] ボタンが表示されます。

SearchBar以下のメソッドは、適切にデリゲートを設定した場合にのみアクセスできます。

 -(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
  {
    //This'll Show The cancelButton with Animation  
    [searchBar setShowsCancelButton:YES animated:YES];
    //remaining Code'll go here
  }

ユーザーとして非表示CancelButtonにする [キャンセル] ボタンをクリックします

 - (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
 {
        //This'll Hide The cancelButton with Animation  
      [searchBar setShowsCancelButton:NO animated:YES];
       //remaining Code'll go here
 }
于 2012-10-23T11:05:05.330 に答える
2

このコードを使用

searchBar.showsCancelButton=YES;
于 2016-02-20T12:22:19.480 に答える
1

cancelボタンを表示するためにこのコードを使用します。にテキストを入力するとボタンが表示され searchBarます。

-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    [searchBar setShowsCancelButton:YES animated:YES];
}
于 2012-10-23T10:45:33.903 に答える
0

UISearchDisplayControllerを使用する必要があります。これにより、ナビゲーションバーが自動的に非表示になります。これがコードです、

-(void) createSearchBar
{
     _searchBar          = [[SearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
     _searchBar.delegate = self;
     [self.view addSubview:_searchBar];

    searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;
    searchDisplayController.searchResultsDelegate = self;
    searchDisplayController.searchResultsTableView.sectionHeaderHeight = 10;
    searchDisplayController.searchResultsTableView.sectionFooterHeight = 0;
    [searchDisplayController.searchResultsTableView setSeparatorColor:[Color whiteColor]];  
}

プロトコルUISearchBarDelegate、UISearchDisplayDelegate、UITableViewDelegate、UITableViewDataSourceを.hファイルに実装する必要があります。

また、_searchBarとsearchDisplayControllerは、.hファイルで定義された変数です。

于 2012-10-23T11:00:58.577 に答える