UISearchBar取消按钮没有响应

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

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


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


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

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

如果你想在UISearchBar文本字段中使用其他逻辑自定义清除按钮,请遵循此答案


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

所以我的建议是为了完成你的任务,

  • 创建一个工具栏
  • 将自定义视图的UIBarButtonItem插入为UISearchBar
  • 用动作插入名为“取消”的UIBarButtonItem
  • 链接地址: http://www.djcxy.com/p/44241.html

    上一篇: UISearchBar cancel button not responding

    下一篇: Stopping UISearchDisplayController to dismiss the searchbar keyboard