首页 文章

如何显示搜索栏的取消按钮?

提问于
浏览
11

我想在用户开始在搜索栏上编辑时隐藏我的页面的导航栏,我还想显示一个取消按钮 .
已完成,但是当我打开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;

}

6 回答

  • 1

    Swift 4:

    下面两行代码为我显示取消按钮:

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

    单击搜索栏后,在 searchBarTextDidBeginEditing() 方法内调用将显示取消按钮 .

  • 0

    使用此代码显示 cancel 按钮 . 当您在 searchBar 中输入文本时,它将显示按钮 .

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

    目标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)
    }
    
  • 33

    使用此代码显示/隐藏 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
     }
    
  • 3

    使用此代码

    searchBar.showsCancelButton=YES;
    
  • 14

    您需要使用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文件中定义的变量 .

相关问题