我已经实现了搜索栏,一旦用户在搜索栏中有焦点,就会显示取消按钮。为此,我在searchBar.showsCancelButton = YES;
方法中写了searchBarTextDidBeginEditing
。在searchBarSearchButtonClicked
中,我重新签名键盘,以便用户可以查看完整的tableview。
问题:此时搜索栏取消按钮没有响应。它只会在搜索栏再次获得焦点时响应。这是搜索栏取消按钮的默认属性还是我在代码中遗漏了一些东西。我想使用取消按钮而不再在搜索栏中给焦点。
答案 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];
}
}
,请按照此回答
答案 2 :(得分:3)
我认为当它获得焦点时它是UISearchBar
的默认行为,然后才会启用取消按钮。当没有焦点时,您无法获得UISearchBar
的取消按钮事件。
所以,我完成任务的建议是,
UIBarButtonItem
插入UISearchBar
UIBarButtonItem