[英]Dismiss Keyboard On drag
在searchController
搜索结果后,我searchController
在滑动/拖动时关闭键盘。
我尝试通过main.storyboard
但没有帮助。
如果我搜索并得到很多结果,我想向下滚动,然后键盘将dismiss
并让我更好地查看结果。如果有人可以提供帮助,那就太好了,谢谢!
现在,当我得到如图所示的结果时,键盘会在我向下滚动时保持不动,这有点烦人。
我正在使用 Swift 2.3 和 Xcode 8.1
这是我的 searchController 设置以防万一:
// MARK : Search ! //
var searchController : UISearchController!
var resultsController = UITableViewController()
override func viewDidLoad() {
super.viewDidLoad()
definesPresentationContext = true
self.resultsController.tableView.dataSource = self
self.resultsController.tableView.delegate = self
self.searchController = UISearchController(searchResultsController: self.resultsController)
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.searchResultsUpdater = self
self.searchController.dimsBackgroundDuringPresentation = true
self.searchController.searchBar.sizeToFit()
self.searchController.searchBar.barTintColor = UIColor.blackColor()
self.searchController.searchBar.endEditing(true)
self.searchController.searchBar.placeholder = "חפש ברים"
self.searchController.hidesNavigationBarDuringPresentation = false
////// MARK: END Of Search //////
}
最后一个结果的 Cell 被切成两半! :
当您使用 tableview 时,您可以使用此属性在拖动时关闭键盘。
斯威夫特
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.onDrag
目标 C
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag
tableView.keyboardDismissMode = .onDrag
使用点击手势关闭键盘。 试试下面给出的解决方案:
override func viewDidLoad() { super.viewDidLoad() let tapGesture = UITapGestureRecognizer(target: self, action: Selector("hideKeyboard")) tapGesture.cancelsTouchesInView = true tableView.addGestureRecognizer(tapGesture) } func hideKeyboard() { tableView.endEditing(true) }
你添加这个 UIScrollViewDelegate
// MARK: - UIScrollViewDelegate
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y < 0){
//Scroll down
self.view.endEditing(true)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.