我正在尝试在Xcode中实现一个名为“ shouldHideSearchKeyboard”的方法,该方法仅在按下回车键时隐藏键盘。问题在于,不仅没有调用resignFirstResponder(),甚至没有调用shouldHideSearchKeyboard,这表明发生了严重错误。我对此感到困惑,因为(1)我已经尝试过有关网站上提出的此问题的所有解决方案,并且(2)除了没有问题的文本字段之外,我实现了完全相同的功能。 谢谢!
我已仔细检查以确保已将UISearchBarDelegate添加到我的SearchTab类中,在该方法中包括一个UISearchBar作为参数,使IB出口将搜索栏连接到我的代码,并将出口的委托设置为自。尽管如此,从不调用shouldHideSearchkeyboard。
@IBOutlet weak var IB_SearchBar: UISearchBar!
class SearchTab: UIViewController, UISearchBarDelegate {
override func viewDidLoad()
{
super.viewDidLoad()
self.IB_SearchBar.delegate = self
}
func hideSearchBarKeyboard(_ searchBar: UISearchBar) -> Bool
{
// Neither resignation nor print statement gets called
searchBar.resignFirstResponder()
print("Search bar entry")
return true
}
}
答案 0 :(得分:0)
pls使用标准苹果通知。添加一个委托并使用Apple委托功能:
在didLoad中设置了委托...
//MARK: UISearchBarDelegate
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) // called when text changes (including clear) {
self.reload.....
}
答案 1 :(得分:-1)
如果searchBar
是您可以使用的唯一响应者;
override var canBecomeFirstResponder: Bool {
return true
}
&
view.endEditing(true)
而不是searchBar.resignFirstResponder()