42

当我在键盘显示UISearchBar上输入文本时,我正在使用。UISearchBar此时,键盘返回键为“搜索”。我想在按下键盘搜索按钮时实现事件。如何实施该操作?上面UITextField

-(BOOL)textFieldShouldReturn:(UITextField *)textField;

UISearchBar它没有返回动作。

谢谢你的帮助。

4

4 回答 4

124

在 .h 中添加 UISearchBarDelegate

还将 SearchBar 的对象委托设置为 self。

将此添加到 UISearchBarDelegate 的方法中:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    // Do the search...
}

迅速

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    searchBar.resignFirstResponder()
}
于 2013-07-13T08:15:53.610 回答
23

在斯威夫特 3 中:

 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        searchBar.resignFirstResponder()
 }
于 2017-04-24T09:36:24.483 回答
5

textFieldShouldReturn方法是一种textField委托方法,而不是您要查找的方法。你需要的是一个UISearchBarDelegate名为的方法searchButtonClicked看看这里

于 2013-07-13T08:13:16.087 回答
0

我在 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()
    }
}
于 2020-02-07T05:01:37.387 回答