这是我的代码:
let aDisposeBag = DisposeBag()
class LoginController: NSViewController {
@IBOutlet weak var accountField: NSTextField!
@IBOutlet weak var passwdField: NSSecureTextField!
@IBOutlet weak var loginBtn: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
let accAvailable = accountField.rx_text.map({(aa)-> Bool in
print("aa")
return aa.characters.count > 0
})
let passAvailable = passwdField.rx_text.map({(aa)-> Bool in
print("bb")
return aa.characters.count > 0
})
let allAvailable = Observable.combineLatest(accAvailable, passAvailable){$0 && $1}
allAvailable.bindTo(loginBtn.rx_enabled).addDisposableTo(aDisposeBag)
}
}
当我在 accountField 中输入内容时,控制台中不会打印任何内容。
但是如果我替换allAvailable.bindTo(loginBtn.rx_enabled).addDisposableTo(aDisposeBag)
成
allAvailable.subscribeNext { (available) in
print(available)
}.addDisposableTo(aDisposeBag)
然后我可以看到aa
或bb
打印在控制台中。任何人都可以告诉我的代码有什么问题,非常感谢!