使用UISearchBar关闭键盘,而不会退出第一响应者
嗨,我正在开发类似于联系人应用程序的基于导航的应用程序。 当您在搜索栏中输入内容并在表格中滚动时(在联系人应用程序中),键盘将消失。 尽管我不认为它会首先响应,因为当我尝试在 - (void)scrollViewDidScroll:(UIScrollView *)scrollView中执行此操作时,它会禁用取消按钮,这在联系人应用程序中不会发生。 基本上我的问题是我如何关闭键盘而不禁用取消按钮,就像在联系人应用程序?
谢谢
那么,刚刚遇到这个非常古老的问题。 您可以在开始滚动时启用“取消”按钮,如下所示:
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
searchBar.resignFirstResponder()
let searchCancelButton = searchBar.valueForKey("cancelButton") as! UIButton
searchCancelButton.enabled = true // <-- THIS line is the trick
}
斯威夫特4
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
searchBar.resignFirstResponder()
let cancelButton = searchBar.value(forKey: "cancelButton") as! UIButton
cancelButton.isEnabled = true
}
(正如在自我回应的评论中暗示的那样)如果您想要获得像内置联系人应用程序这样的表搜索行为,那么您不能只用一个UITableView将UISearchBar拍成一个视图,而是需要一起使用UITableViewController与Search Display Controller
。 此示例应用程序是一个完美的指南:
https://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html
链接地址: http://www.djcxy.com/p/1173.html上一篇: Dismissing the keyboard with UISearchBar, without resigning first responder
下一篇: How can I debug solutions in Visual Studio 2010 from a network share?