当我在键盘显示的UISearchBar
上输入文字时,我正在使用UISearchBar
。那时,键盘返回键是“搜索”。
我想按下键盘搜索按钮时实现事件。
我该如何实施该行动?
在UITextField
上有
-(BOOL)textFieldShouldReturn:(UITextField *)textField;
但在UISearchBar
上,它没有返回操作。
感谢您的帮助。
答案 0 :(得分:98)
在.h
中添加UISearchBarDelegate还将SearchBar的对象委托设置为self。
将此添加到UISearchBarDelegate的方法:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// Do the search...
}
<强>夫特强>
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
答案 1 :(得分:17)
在Swift 3中:
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
答案 2 :(得分:3)
textFieldShouldReturn
方法是textField
委托方法,而不是您要查找的方法。您需要的是名为UISearchBarDelegate
,have a look here的searchButtonClicked
方法。
答案 3 :(得分:0)
i在Swift 5中使用了以下代码。实现UISearchBarDelegate,然后在类键盘中编写以下代码将在单击搜索时自动隐藏
class sample: UIViewController, UISearchBarDelegate {
let searchbar: UISearchBar = {
let sear = UISearchBar()
sear.tintColor = Mycolor().lightgray1
sear.backgroundColor = Mycolor().lightgray1
sear.barTintColor = Mycolor().lightgray1
sear.placeholder = "Search Asset"
sear.layer.cornerRadius = 30
sear.barStyle = .default
sear.backgroundImage = UIImage()
sear.returnKeyType = .search
// sear.addShadow(offset: CGSize(width: 10, height: 10), color: UIColor.darkGray, radius: 20, opacity: 5)
return sear
}()
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
}