web-dev-qa-db-ja.com

検索バーのキャンセルボタンを表示する方法は?

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

- (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;

}
14
nizama bunti

Objective C

- (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 setShowsCancelButton:YES animated:YES];
}


-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
    [searchBar setShowsCancelButton:NO animated:YES];
}

Swift

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
    self.navigationController.navigationBar.hidden = true
    var r = self.view.frame
    r.Origin.y = -44
    r.size.height += 44

    self.view.frame = r
    searchBar.setShowsCancelButton(true, animated: true)
}

func searchBarTextDidEndEditing(searchBar: UISearchBar) {
    searchBar.setShowsCancelButton(false, animated: true)
}
34
user1573321

このコードを使用して、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
 }
14
Kamar Shad

このコードを使用する

searchBar.showsCancelButton=YES;
2

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

-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    [searchBar setShowsCancelButton:YES animated:YES];
}
1
Mahesh Peri

Swift 4:

2行以下のコードで、キャンセルボタンを表示できました。

_searchBar.setShowsCancelButton(true, animated: true)
searchBar.showsCancelButton = true
_

searchBarTextDidBeginEditing()メソッド内を呼び出すと、検索バーをクリックした後にキャンセルボタンが表示されます。

1
Touhid

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ファイルで定義されている変数です。

0
waheeda