即使搜索栏文本字段为空,也启用“搜索按钮”

时间:2010-08-26 17:26:58

标签: iphone uisearchbar

我正在寻找一种方法来启用键盘上的“搜索” - 按钮,即使搜索栏的文本字段在当时不包含文本也很困难。

背景是,与在搜索栏的文本字段中输入的术语一起,我将向我的后端发送其他信息。然后,搜索空术词是有意义的(在我的范围内)..

有什么方法可以解决这个问题吗?

提前,

SAM

3 个答案:

答案 0 :(得分:2)

您可以尝试在搜索文本字段变为活动状态时将不可见字符添加到搜索文本字段的开头。 Zero-width space可能只是事情。

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController*)controller
{
    NSLog(@"Starting search");  
    controller.searchBar.text = @"\u200B";
}

您可能希望将其与此类内容组合以防止重新加载表数据:

- (BOOL)searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchString:(NSString*)searchString
{
    return ![searchString isEqualToString:@"\u200B"];
}

答案 1 :(得分:0)

在iOS 8中非常简单。

在viewDidLoad中:

    self.searchBar.enablesReturnKeyAutomatically = false

但是对于8之前的iOS版本,你应该将UISearchBarDelegate设置为你的searchBar,然后覆盖 searchBarTextDidBeginEditing (我的是Swift代码,很容易将它转换为Objective-C代码):

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {

    searchBar.setShowsCancelButton(true, animated: true)

    var searchBarTextField : UITextField? = nil
    for mainview in searchBar.subviews
    {
        for subview in mainview.subviews {
            if subview.isKindOfClass(UITextField)
            {
                searchBarTextField = subview as? UITextField
                break
            }
        }
    }
    searchBarTextField!.enablesReturnKeyAutomatically = false
}

答案 2 :(得分:-1)

最好只设一个“全部显示”的按钮或链接或类似的东西。