我使用以下代码创建了一个search bar
:
UISearchBar *Search = [[UISearchBar alloc]initWithFrame:CGRectMake(150, 0,170 , 50)];
[SearchView addSubview:Search];
但是当我单击搜索按钮时,键盘没有隐藏。我用过很多方法,比如searchBarTextDidEndEditing
和searchBarSearchButtonClicked
。也许原因是我的搜索栏没有附加。我还在我的 .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];
}
这将起作用。