簡體   English   中英

如何顯示搜索欄的取消按鈕?

[英]how to show cancel button of searchbar?

當用戶開始在搜索欄上進行編輯時,我想隱藏頁面的導航欄,我也想顯示一個取消按鈕。
完成了,但是當我調出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;

}

目標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];
}

迅速

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)
}

使用此代碼顯示/隱藏SearchBar的“取消”按鈕

用戶將開始在SearchBar中進行編輯。

只有正確設置了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
 }

使用此代碼

searchBar.showsCancelButton=YES;

使用此代碼顯示cancel按鈕。 當您在searchBar輸入文本時,它將顯示按鈕。

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

斯威夫特4:

下面的兩行代碼為我顯示了“取消”按鈕:

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

單擊搜索欄后,在searchBarTextDidBeginEditing()方法內部調用將顯示取消按鈕。

您需要使用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]];  
}

您將必須在.h文件中實現協議UISearchBarDelegate,UISearchDisplayDelegate,UITableViewDelegate,UITableViewDataSource。

_searchBar和searchDisplayController也是.h文件中定義的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM