2013-02-15 114 views
8

我已经实现了搜索栏,显示取消按钮,一旦用户有搜索栏焦点。为此,我在我的searchBarTextDidBeginEditing方法中写了searchBar.showsCancelButton = YES;。在searchBarSearchButtonClicked中,我辞去了键盘,以便用户可以查看完整的tableview。UISearchBar取消按钮没有响应

问题:此时搜索栏取消按钮没有响应。它只有在搜索栏重新获得焦点时才会响应。这是搜索栏取消按钮的默认属性还是我缺少我的代码中的东西。我想要使​​用取消按钮,而不必再次在搜索栏中输入焦点。

+1

你怎么辞职firstresponder上serachbar的文本框按照这个答案? – 2013-02-15 07:48:47

+0

你检查了我的答案吗? – Rajneesh071 2013-04-15 07:39:23

+0

它的真实......无论是否设计,它应该工作,如果它存在。 – Morkrom 2014-10-07 18:29:46

回答

4

这是搜索栏取消按钮的默认行为。如果您需要其他功能,则可以取消选中搜索栏的cancelbutton属性,并可以使用UIButton作为取消按钮。

+1

谢谢!我会尝试实现我自己的取消按钮 – JiteshW 2013-02-15 10:24:23

3

我认为它的默认行为是UISearchBar,当它获得焦点然后只有取消按钮将被启用。当没有焦点时,您无法取得UISearchBar的取消按钮事件。

所以我suggession实现你的任务是,

  • 创建一个工具栏
  • 插入UIBarButtonItem自定义视图UISearchBar
  • 插入UIBarButtonItem命名为 “取消”,用实际行动
4

是的,你可以让你的UISearchBar取消按钮响应。 默认情况下它是禁用的,但您可以访问它的子视图,然后设置启用取消按钮。

for (id object in [mySearchBar subviews]) 
{ 
    if ([object isKindOfClass:[UIButton class]]) 
    { 
     UIButton *searchBarCancelBtn = (UIButton*)object; 
     [searchBarCancelBtn setEnabled:YES]; 
    } 
} 

,如果你想一些其他的逻辑Custom clear button in UISearchBar text field