1

我正在使用 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

但要么它说 '<~' 未解决,要么 textValues 不是属性。

请帮我绑定这个。

4

1 回答 1

1

Rac5<~中的函数用于将 aBindingTarget与信号绑定,你可以像这样使用它:

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您使用的文件中<~

于 2016-12-26T05:55:03.783 回答