点击搜索栏的“取消”按钮时,我想辞职键盘,但是当前问题是我处理“取消”按钮的功能不起作用。您可以在此处查看我的代码:
searchBar.rx.cancelButtonClicked
.asDriver(onErrorJustReturn: ())
.drive(onNext: { [searchBar] in
searchBar?.searchTextField.resignFirstResponder()
}).disposed(by: disposeBag)
答案 0 :(得分:0)
假设searchBar
是UISearchController
上的实际searchBar ...
您必须调用searchBar.resignFirstResponder()
,对于iOS 13及更高版本,我发现如果不调用searchBar.showsCancelButton = false
,取消按钮也不会消失。
此外,我建议传递一个弱的searchBar实例,否则您的代码可能会泄漏。因此,这就是我的写法:
searchBar.rx
.cancelButtonClicked
.asDriver(onErrorJustReturn: ())
.drive(onNext: { [weak searchBar] in
searchBar?.resignFirstResponder()
searchBar?.showsCancelButton = false
})
.disposed(by: disposeBag)