Swift2 如何处理;“完成”;rxSwift中的返回按键事件?
在探索中 我只找到了Swift2 如何处理;“完成”;rxSwift中的返回按键事件?,swift2,reactive-programming,rx-swift,Swift2,Reactive Programming,Rx Swift,在探索中 我只找到了textField.rx\u text.asObservable()属性,它会在每次按下键盘按钮时触发事件 但我们如何处理“搜索”或“完成”按钮按下事件?我只想在这些操作后启动搜索,而不是“键入时搜索”。您可以订阅类似以下内容的uicontrol事件: textField.rx\u控制事件(.editingdidenonexit).subscribeNext{ 打印(“按下返回键”) }在Rxswift 3.0中 textField.rx.controlEvent([.edi
textField.rx\u text.asObservable()
属性,它会在每次按下键盘按钮时触发事件
但我们如何处理“搜索”或“完成”按钮按下事件?我只想在这些操作后启动搜索,而不是“键入时搜索”。您可以订阅类似以下内容的uicontrol事件:
textField.rx\u控制事件(.editingdidenonexit).subscribeNext{
打印(“按下返回键”)
}
在Rxswift 3.0中
textField.rx.controlEvent([.editingDidEndOnExit])
.subscribe(onNext:{text in
print(text)
}).addDisposableTo(disposeBag)
在RxSwift 4和5中:
textField.rx.controlEvent([.editingDidEndOnExit]).subscribe { _ in
print("editingDidEndOnExit")
}.disposed(by: disposeBag)
是否可以将其包装为可观察的?是的,请尝试以下操作:
textField.rx\u controlEvents(.editingdidenonexit)。asObservable()
最重要的问题是如何在订阅此控制事件时不关闭键盘如果点击textField之外,这实际上会产生矛盾。这两种情况最终都会被观察到,并产生意外行为。。disposed(by:disposeBag)
***addDisposableTo
即将被弃用。无需在周围添加括号。EditingDidenoNexit
什么打印(文本)
假设打印,起初我以为它是文本字段中的文本,但当我尝试时,它打印出空括号()@koira good point。“文本”应命名为“事件”。但它不包含有价值的信息,所以我删除了它以防止混淆。