UISearchBar取消按钮没有响应

时间:2013-02-15 07:41:17

标签: iphone uisearchbar

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

问题:此时搜索栏取消按钮没有响应。它只会在搜索栏再次获得焦点时响应。这是搜索栏取消按钮的默认属性还是我在代码中遗漏了一些东西。我想使用取消按钮而不再在搜索栏中给焦点。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

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

,请按照此回答

答案 2 :(得分:3)

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

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

  • 创建工具栏
  • 将自定义视图UIBarButtonItem插入UISearchBar
  • 使用操作
  • 插入名为“取消”的UIBarButtonItem