How can I disable/enable UISearchBar keyboard'

2019-01-15 18:57发布

I am using UISearchBar in my code. I have imported its delegate in header file and implemented some delegate methods in implementation file also.

When we tap on the UISearchBar, a keyboard will appear to enter text. The return key of the keyboard is "Search" button. It will disabled by default. When we enter a character, It will get enabled. (Am I right?)

Here the problem comes.. I want to enable the UISearchBar keyboard's return key when the user types atleast two letters.

Is it possible? If yes, how can we do it?

Thanks

5条回答
劫难
2楼-- · 2019-01-15 19:08

This is how i do it:

    if([searchbar.text length] == 0) {
        [searchBar performSelector: @selector(resignFirstResponder)
                           withObject: nil
                           afterDelay: 0.1];
    }
查看更多
可以哭但决不认输i
3楼-- · 2019-01-15 19:12

Short answer is no...

Longer, hackier and more exotic one is here: How to disable/enable the return key in a UITextField?

查看更多
姐就是有狂的资本
4楼-- · 2019-01-15 19:14

You can't disable the search button. What you can do is use the UISearchBarDelegate methods to figure out if you should take action on the search button being clicked, like so:

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

The Apple Documentation for this is very useful as well, and is a great starting point for customizing the searchBar's behavior.

查看更多
闹够了就滚
5楼-- · 2019-01-15 19:15

You can try this,

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

         // Do your code here
       }
}
查看更多
疯言疯语
6楼-- · 2019-01-15 19:15

You can try this

if([self.searchBar.text length] > 2)
{
    [self.searchBar resignFirstResponder];
}
查看更多
登录 后发表回答