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。“文本”应命名为“事件”。但它不包含有价值的信息,所以我删除了它以防止混淆。