带有 RxSwift 的搜索栏取消按钮
Posted
技术标签:
【中文标题】带有 RxSwift 的搜索栏取消按钮【英文标题】:Search Bar Cancel Button with RxSwift 【发布时间】:2020-06-24 09:54:40 【问题描述】:当点击搜索栏的取消按钮时,我想退出键盘,但当前的问题是我处理取消按钮的功能不起作用。您可以在此处查看我的代码:
searchBar.rx.cancelButtonClicked
.asDriver(onErrorJustReturn: ())
.drive(onNext: [searchBar] in
searchBar?.searchTextField.resignFirstResponder()
).disposed(by: disposeBag)
【问题讨论】:
【参考方案1】:假设searchBar
是UISearchController
上的实际搜索栏...
您必须致电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)
【讨论】:
以上是关于带有 RxSwift 的搜索栏取消按钮的主要内容,如果未能解决你的问题,请参考以下文章