我正在尝试验证具有多个文本字段的表单。但我只能在编辑两个文本字段时观察......
let validUserNameSignal =
self.nameTextField
.reactive
.continuousTextValues
.skipNil()
.map({ $0.characters.count > 3 })
let pwdPasswordFieldSignal =
self.lastnameTextField.reactive
.continuousTextValues
.skipNil()
.map({$0.characters.count > 3})
let formValidation = validUserNameSignal.combineLatest(with: pwdPasswordFieldSignal)
formValidation.observeValues { (userNameResult,pwdResult) in
print(userNameResult)
print(pwdResult)
}
我的表现方式还是其他方式吗?
答案 0 :(得分:1)
这是一个基本ViewController的示例实现,我已经清理了一些我认为可以做得更好的事情。
path = "sftp://user:p@ssw0rd@test.com/path/to/file.txt"
# Read a file
with open_sftp(path) as f:
s = f.read()
print s
# Write to a file
with open_sftp(path, mode='w') as f:
f.write("Some content.")
答案 1 :(得分:0)
continuousTextValues
是Signal
,具有热语义。这意味着它只发出观察后发生的变化。
您可能希望将formValidation
信号转换为生产者,并为默认值添加前缀。
SignalProducer(signal: formValidation)
.map { $0 && $1 }
.prefix(value: false)
.startWithValues { ... }