私はthis postという素晴らしい指示に従って、キャンセルボタンを表示していない検索バーと検索コントローラをサブクラス化しました。ただし、編集を開始すると、検索バーにカーソルが表示されなくなりました。私は、さまざまなデリゲートメソッドで、多くの投稿で答えとして見た検索バーの色合いを設定しようとしました。色合いは技術的に正しく設定されています。私の検索コントローラを標準のUISearchController
に設定してテストするとわかります。しかし、私がサブクラスSearchControllerWithoutCancel
にセットすると、すぐにカーソルが消えます。ここでキャンセルボタンが隠されているときにカーソルが消える
は私のサブクラスです:
class SearchBarWithoutCancel: UISearchBar {
override func layoutSubviews() {
super.layoutSubviews()
setShowsCancelButton(false, animated: false)
}
}
クラスSearchControllerWithoutCancel:ここUISearchController、UISearchBarDelegate {
lazy var _searchBar: SearchBarWithoutCancel = {
[unowned self] in
let result = SearchBarWithoutCancel(frame: .zero)
result.delegate = self
return result
}()
override var searchBar: UISearchBar {
get {
return _searchBar
}
}
}
そして私はviewDidLoad()
から呼び出す私のaddSearchController
方法です
func addSearchController() {
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.autocapitalizationType = .none
searchController.searchBar.searchBarStyle = .minimal
searchController.searchBar.tintColor = UIColor.black
self.definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar
}
誰もこれまでに遭遇したことはありますか?感謝:)