1
タイトルに記載されているとおり、検索バーの外側をクリックすると、検索バーからキーボードを外すことになります。同様の質問は、touchesBeganでself.view.endEditing(true)を使用すると述べましたが、私は運がなかった。私は何かが不足しているかどうか、またはsearchBarを正しく設定したかどうかはわかりません。溶液上のSwift 3.0バーの外側をクリックしたときに検索バーのキーボードを閉じる方法
import UIKit
import MapKit
class AddressVC: UIViewController {
@IBOutlet weak var searchBar: UISearchBar!
var searchCompleter = MKLocalSearchCompleter()
var searchResults = [MKLocalSearchCompletion]()
@IBOutlet weak var searchResultsTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
searchBar.delegate = self
// Do any additional setup after loading the view, typically from a nib.
searchResultsTableView.isHidden = true
searchCompleter.delegate = self
}
extension AddressVC: UISearchBarDelegate {
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchCompleter.queryFragment = searchText
}
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
self.searchBar.endEditing(true)
searchBar.resignFirstResponder()
return true
}
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
searchResultsTableView.isHidden = false
return true
}
func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true)
self.searchBar.endEditing(true)
searchBar.resignFirstResponder()
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
searchResultsTableView.isHidden = true
self.searchBar.endEditing(true)
searchBar.resignFirstResponder()
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
}
navigationControllerで検索バーのために動作しませんでした。私はview.endEditing(true)をself.searchBar.endEditing(true)に変更しました。 – DoesData