繁体   English   中英

RxSwift 文本字段委托方法

[英]RxSwift Text field Delegate Methods

我是 RxSwift 的新手。 我需要询问如何使用 RxSwift 绑定 textField 委托方法,例如 textFieldShouldReturn 或 textViewDidBeginEditing。

这将绑定textfield委托方法

textfield.rx.controlEvent([.EditingDidBegin]).asObservable().subscribe(on:{_ in 
    print("edit begin")
 }).addDisposableTo(disposer)

RxSwift、RxSwiftExt、RxCocoa 5.0:

let textField = UITextField()
textField.rx.controlEvent(.editingDidBegin).subscribe(onNext: { () in

}, onError: { (error) in

}, onCompleted: {

}).disposed(by: disposeBag)

这是仅在编辑完成后获取文本的一种方式

cell.nameLabel.rx.controlEvent(.editingDidEnd).map{return
                        cell.nameLabel.text!
                    }

假设您有一个viewModel 例如:

class ViewModel {
    var name: Variable<String>
    // more properties ...
}

然后,在您的viewController

textField.rx.text.orEmpty
    .bindTo(viewModel.name)
    .addDisposableTo(disposeBag)

在您的viewController您必须导入RxSwiftRxCocoa

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM