Ios 不调用resignFirstResponder()有什么特殊原因吗?
我试图在Xcode中实现一个名为“shouldHideSearchKeyboard”的方法,当按下返回键时,它会简单地隐藏键盘。问题是,不仅没有调用resignFirstResponder(),甚至也没有调用shouldHideSearchKeyboard,这表明出了严重的问题。我对此感到困惑,因为(1)我尝试了网站上提出的关于这个问题的所有解决方案,(2)我实现了完全相同的功能,除了没有问题的文本字段。 谢谢大家! 我已仔细检查,以确保已将UISearchBarDelegate添加到我的SearchTab类中,在方法中包含一个UISearchBar作为参数,创建一个IB出口,将搜索栏连接到我的代码,并将出口的委托设置为self。尽管如此,永远不要调用shouldHideSearchkeyboardIos 不调用resignFirstResponder()有什么特殊原因吗?,ios,swift,xcode,search,uisearchbar,Ios,Swift,Xcode,Search,Uisearchbar,我试图在Xcode中实现一个名为“shouldHideSearchKeyboard”的方法,当按下返回键时,它会简单地隐藏键盘。问题是,不仅没有调用resignFirstResponder(),甚至也没有调用shouldHideSearchKeyboard,这表明出了严重的问题。我对此感到困惑,因为(1)我尝试了网站上提出的关于这个问题的所有解决方案,(2)我实现了完全相同的功能,除了没有问题的文本字段。 谢谢大家! 我已仔细检查,以确保已将UISearchBarDelegate添加到我的Sea
@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
}
}
请使用标准苹果通知。添加代理并使用Apple代理功能: 在加载集委托中
//MARK: UISearchBarDelegate
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) // called when text changes (including clear) {
self.reload.....
}如果
搜索栏是您可以使用的唯一应答器
override var canBecomeFirstResponder: Bool {
return true
}
&
view.endEditing(true)
而不是searchBar.resignFirstResponder()
您的问题是关于shoulldhidesearchkeyboard
。您的代码有一个名为hideSearchBarKeyboard
的方法。但是,你发明的这两种方法中的哪一种应该被称为什么呢?UISearchBar`的委托方法不适用于任何一种方法。@ingconti Lmao谢谢,我没有想到我所做的函数没有列在Apple文档中。在阅读并使用searchBarButtonClicked(UISearchBar)之后,它就可以工作了。