RxSwift文本字段委托方法

时间:2017-03-31 07:13:54

标签: ios swift3 rx-swift

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

4 个答案:

答案 0 :(得分:3)

这将绑定textfield委托方法

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

答案 1 :(得分:0)

RxSwift,RxSwiftExt,RxCocoa 5.0:

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

}, onError: { (error) in

}, onCompleted: {

}).disposed(by: disposeBag)

答案 2 :(得分:-1)

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

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

答案 3 :(得分:-2)

让我们假设你有一个viewModel。例如:

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

然后,在viewController

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

viewController中,您必须导入RxSwiftRxCocoa