私のアプリを1つの画面に切り替えました。UISearchBar
からUISearchController
に切り替わりました。これは、テーブルビューコントローラです。デザインごとに、私は最初にUIがアクティブにならない限り、検索バーを保持してはいけません(通常、検索バーを 'tableHeaderView'として保持するのが一般的です)。問題は、「検索バー」をタップしてアクティブにして最初のレスポンダにする必要があるときに、検索ボタンがあることでした。UISearchController最初のレスポンダになるために特別なタップが必要
キャンセルボタンをタップすると、UIから削除する必要があります。しかし、ナビゲーションバーの「検索バーボタン」をタップすると、UISearchController
がアクティブになり、背景が暗くなりますがキーボードは表示されません。検索バーでもう一度タップしてキーボードをUIに移動する必要があります。
@IBAction func onTapSearch(_ sender: AnyObject) {
self.view.addSubview(searchController.searchBar)
searchController.isActive = true
searchController.becomeFirstResponder()
isSearchActive = true
self.navigationController?.setToolbarHidden(true, animated: false)
}
私は私のviewDidLoad
方法でUISearchController
を設定しています:
は、ここに私の検索バーボタンアクションです。そのパートコードが見たいものであれば教えてください。ただし、通常のコードです。そして私はどこでもresignFirstResponder()
メソッドをどこでも呼んでいないことを確認しました。
私はそのコードを最初に持っていました。うまくいきませんでした。 –
私の編集した答えを確認してください – KAR
うんうん。ありがとう。 :) –