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



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

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

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

Search.delegate = Self;

谁能建议我如何将代码创建的搜索栏附加到我的视图控制器,以便它应该工作?

首先,您需要设置搜索栏delegate然后 您应该使用以下delegate方法来UISearchBar例如,

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
}
Use the `resignFirstResponder`
    -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [candySearchBar resignFirstResponder];
}
//hide keyboard on searchBarTextDidEndEditing
    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
 //hide keyboard
    [candySearchBar resignFirstResponder];
}

按照以下代码实现了- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

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

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

继续... :)

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

yourSearchBar.delegate = self;

您可以使用以下委托函数:

 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

当用户按下搜索按钮时调用此按钮。 随意关闭你的钥匙无聊,在那里做任何你需要的事情

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

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

这将起作用。

最新更新