9

UISearchBar在我的代码中使用。我已经在头文件中导入了它的委托,并在实现文件中实现了一些委托方法。

当我们点击 时UISearchBar,会出现一个用于输入文本的键盘。键盘的返回键是“搜索”按钮。它将默认禁用。当我们输入一个字符时,它将被启用。(我对吗?)

问题来了。我想UISearchBar在用户输入至少两个字母时启用键盘的返回键。

可能吗?如果是,我们该怎么做?

谢谢

4

7 回答 7

9

您不能禁用搜索按钮。您可以做的是使用这些UISearchBarDelegate方法来确定您是否应该对单击的搜索按钮采取措施,如下所示:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    if (searchBar.text.length < 2) {
        return;
    }
    else {
        // Do search stuff here
    }
}

Apple 文档也非常有用,它是自定义 searchBar 行为的一个很好的起点。

于 2012-03-15T14:45:43.603 回答
1

简短的回答是不...

更长,更hackier和更奇特的一个在这里: 如何禁用/启用UITextField中的返回键?

于 2012-03-15T14:41:27.950 回答
1

您可以通过访问UISearchBar属性来做到这一点。

let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.enablesReturnKeyAutomatically = false

通过玩enablesReturnKeyAutomatically财产,您可以实现您的要求。

谢谢。

于 2020-07-09T13:00:30.907 回答
0

我就是这样做的:

    if([searchbar.text length] == 0) {
        [searchBar performSelector: @selector(resignFirstResponder)
                           withObject: nil
                           afterDelay: 0.1];
    }
于 2013-05-02T16:06:04.360 回答
0

你可以试试这个

 - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
       if (searchText.length>=2) {
         [Main_SearchBar resignFirstResponder];

         // Do your code here
       }
}
于 2015-08-31T09:48:35.200 回答
0

这是您要查找的设置:

searchBar.enablesReturnKeyAutomatically = true

于 2021-12-08T08:22:20.353 回答
-1

你可以试试这个

if([self.searchBar.text length] > 2)
{
    [self.searchBar resignFirstResponder];
}
于 2012-03-15T14:25:53.287 回答