我正在使用ReactiveCocoa 5.0 alpha 3,ReactiveSwift和Swift 3
我遇到了将UITextField绑定到MutableProperty的问题。
在ReactiveCocoa 4中,我用过: -
extension UITextField {
func signalProducer() -> SignalProducer<String, NoError> {
return self.rac_textSignal().toSignalProducer()
.map { $0 as! String }
.flatMapError { _ in return SignalProducer<String, NoError>.empty }
}
}
viewModel.email <~ emailTextField.signalProducer()
但现在在ReactiveCocoa 5中,我无法做到这一点。根据我的理解,我应该做这样的事情我猜: -
viewModel.email <~ emailTextField.reactive.textValues
但要么说“&lt;〜”没有解决,要么textValues不是属性。
请帮我绑定。
答案 0 :(得分:1)
Rac5中的<~
是一个将BindingTarget
与信号绑定的函数,你可以像这样使用它:
placeHolderLabel.reactive.isHidden <~
self.reactive
.values(forKeyPath: #keyPath(passwordTF.text))
.map({ (value) -> Bool in
let value = value as! String
return !value.isEmpty
})
或者这个:
let buttonEnabled = MutableProperty<Bool>(false)
button.reactive.isEnabled <~ buttonEnabled
并确保已在使用ReactiveSwift
的文件中导入模块<~
。