Swift 键盘不被解雇

Swift 键盘不被解雇,swift,uicollectionview,uitextfield,swift4,Swift,Uicollectionview,Uitextfield,Swift4,我意识到这是一个琐碎的问题,有很多答案。我可能只需要一双新鲜的眼睛,因为我已经检查了所有的东西,看不出我在这方面出了什么问题。我只想在按下回车键时关闭键盘。我正在正确地设置委托并实现正确的方法,那么为什么键盘不会关闭呢 在viewController中使用collectionView会使事情变得复杂吗?文本字段不在collectionView中 我尝试过的事情: 清理项目 重新启动xcode 将searchBar.resignFirstResponder更改为textField.resignFi

我意识到这是一个琐碎的问题,有很多答案。我可能只需要一双新鲜的眼睛,因为我已经检查了所有的东西,看不出我在这方面出了什么问题。我只想在按下回车键时关闭键盘。我正在正确地设置委托并实现正确的方法,那么为什么键盘不会关闭呢

在viewController中使用collectionView会使事情变得复杂吗?文本字段不在collectionView中

我尝试过的事情:

清理项目 重新启动xcode 将searchBar.resignFirstResponder更改为textField.resignFirstResponder 在IB中而不是在viewDidLoad中为文本字段设置委托 我到底错过了什么

使用此代码

view.endEditing(true) 

您需要实现适当的文本字段委托方法。没有textFieldShouldReturntextField:这样的委托方法。正确的方法是textFieldShouldReturn:

这个uu产生了巨大的不同。您可能复制了旧的Swift 2实现


最好让Xcode执行代码完成,以确保您获得所实现或调用的任何方法的正确签名。

如果您在textFieldShouldReturntextField中设置断点:它是否实际调用searchBar.resignFirstResponder?不,在shouldReturn方法中它似乎不是@Guykogus?天哪。非常感谢。我花了两个小时忽略了下划线:D
view.endEditing(true) 
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    searchBar.resignFirstResponder()
    return false
}