在搜索按钮上隐藏键盘单击由代码创建的搜索栏

时间:2014-01-08 08:57:25

标签: ios iphone objective-c

我使用以下代码创建了search bar

 UISearchBar *Search = [[UISearchBar alloc]initWithFrame:CGRectMake(150, 0,170 , 50)];
[SearchView addSubview:Search];

但是当我点击搜索按钮时,键盘没有被隐藏。我使用了很多方法,例如searchBarTextDidEndEditingsearchBarSearchButtonClicked。也许原因是我的搜索栏没有附加。我还在.h类和.m UISearchBarDelegate方法中使用了unload委托:

Search.delegate = Self;

任何人都可以建议我如何将我的代码创建的搜索栏附加到我的View Controller,以便它可以工作吗?

6 个答案:

答案 0 :(得分:12)

首先,您需要设置searchBar的delegate,然后您应该使用delegate的{​​{1}}方法,例如,

UISearchBar

答案 1 :(得分:6)

Use the `resignFirstResponder`

    -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [candySearchBar resignFirstResponder];
}

//hide keyboard on searchBarTextDidEndEditing

    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{

 //hide keyboard

    [candySearchBar resignFirstResponder];

}

答案 2 :(得分:1)

按以下代码实施- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [searchBar resignFirstResponder];
 }

不要忘记在界面(.h)文件中添加UISearchBarDelegate。

继续......:)

答案 3 :(得分:1)

请尝试在ViewDidLoad方法中将UISearchBar的委托设置为:

yourSearchBar.delegate = self;

答案 4 :(得分:0)

您可以使用以下委托功能:

 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

当用户按下搜索按钮时调用此方法。随意解雇你的无聊的钥匙,做你需要的任何事情

答案 5 :(得分:0)

您也可以在按钮操作方法上执行此操作。单击搜索按钮时,请写下以下行。

(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [self.view endEditing:YES];
}

这样可行。