LeadKitAdditions/Sources/Views/CellTextField/CellTextField.swift

47 lines
1.0 KiB
Swift

import UIKit
import RxCocoa
import RxSwift
class CellTextField: UITextField {
private var disposeBag = DisposeBag()
var viewModel: CellTextFieldViewModel? {
didSet {
configure()
}
}
// MARK: - Init
private func configure() {
disposeBag = DisposeBag()
guard let viewModel = viewModel else {
return
}
inputAccessoryView = viewModel.toolBar
returnKeyType = viewModel.returnButtonType
text = viewModel.textValue
placeholder = viewModel.placeholder
viewModel.textFieldSettingsBlock?(self)
viewModel.bind(for: self, to: disposeBag)
rx.text.asDriver()
.drive(onNext: {
viewModel.setTextValue($0)
})
.disposed(by: disposeBag)
rx.controlEvent(.editingDidEndOnExit)
.subscribe(onNext: { [viewModel] in
viewModel.shouldGoForward.onNext(Void())
})
.disposed(by: disposeBag)
}
}