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