绑定文本字段文本以启用按钮不起作用
Binding textfield text to enable button not working
我是响应式编程的新手,尤其是 Bond 框架。我知道我可能在对这种编程技术的基本理解上做错了事情。是这样的情况:
我有一个 UITextView
和一个 "approve" UIButton
。
我希望仅当 textView 中的文本不为零时才启用批准按钮。我尝试将这些代码行添加到我的 ViewController
.
中的 viewDidLoad
方法中
textView.reactive.text.observeNext{(text) in
self.message = text
print(text)
}
textView.reactive.text.map { [=10=] != nil}.bind(to: approveButtonOutlet.reactive.isEnabled)
第一个操作有效(在每次输入更改时都成功打印文本)。
第二个不起作用,当文本不为 nil 和为 nil 时按钮都启用。
感谢任何帮助。
你可以试试
RAC(self.approveButtonOutlet, enabled) = [self.textView.rac_textSignal map:^id(NSString *text) {
return @(text.length > 0);
}];
我不确定 swift 3 会怎么样
RAC(self.approveButtonOutlet, enabled) = self.textView.rac_textSignal.map({(text: String) -> void in
return (text.length > 0)
})
我发现问题是我的 textView 中有一个占位符,它阻止了文本真正为零。所以我最终做的是:
textView.reactive.text.map {
if [=10=] == placeholder {
return false
} else if [=10=] != nil {
return [=10=]!.characters.count > 0
} else{
return false
}
}.bind(to: approveButtonOutlet.reactive.isEnabled)
我是响应式编程的新手,尤其是 Bond 框架。我知道我可能在对这种编程技术的基本理解上做错了事情。是这样的情况:
我有一个 UITextView
和一个 "approve" UIButton
。
我希望仅当 textView 中的文本不为零时才启用批准按钮。我尝试将这些代码行添加到我的 ViewController
.
viewDidLoad
方法中
textView.reactive.text.observeNext{(text) in
self.message = text
print(text)
}
textView.reactive.text.map { [=10=] != nil}.bind(to: approveButtonOutlet.reactive.isEnabled)
第一个操作有效(在每次输入更改时都成功打印文本)。 第二个不起作用,当文本不为 nil 和为 nil 时按钮都启用。
感谢任何帮助。
你可以试试
RAC(self.approveButtonOutlet, enabled) = [self.textView.rac_textSignal map:^id(NSString *text) {
return @(text.length > 0);
}];
我不确定 swift 3 会怎么样
RAC(self.approveButtonOutlet, enabled) = self.textView.rac_textSignal.map({(text: String) -> void in
return (text.length > 0)
})
我发现问题是我的 textView 中有一个占位符,它阻止了文本真正为零。所以我最终做的是:
textView.reactive.text.map {
if [=10=] == placeholder {
return false
} else if [=10=] != nil {
return [=10=]!.characters.count > 0
} else{
return false
}
}.bind(to: approveButtonOutlet.reactive.isEnabled)