嘿,我正在iPhone上开发类似于联系人应用程序的基于导航的应用程序。当您在搜索栏中输入内容并在表格中滚动(在“通讯录”应用中)时,键盘就会消失。我认为它不会使第一响应者辞职,因为当我尝试在-(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
}

关于iphone - 使用UISearchBar消除键盘,而无需退出第一响应者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3006005/

10-08 20:40