在 Reactive 中点击 UIButton 获取信号 Cocoa 4
Get Signal from tap on UIButton in Reactive Cocoa 4
如何通过点击 UIButton
创建 Signal
?
So far I tried to use target/action,但开始认为可能有更简单的方法。
在 article of Colin Eberhardt, 中指出 Signals
适用于 UI 操作。但是当我尝试使用 target/action 时,我需要创建一个 CocoaAction
最终用 SignalProducer
初始化。
我想要的是一些 Signal
会在每次用户点击时发出其 next
事件。然后我想将此信号转换为从 UITextFields
读取并继续这些值以在我的应用程序中使用它们。
使用@NachoSoto gist 中的便利函数,我能够通过 signalForControlEvents(UIControlEvents.TouchUpInside)
非常简单地实现这一点:
self.startButton
.signalForControlEvents(UIControlEvents.TouchUpInside)
.map { _ in (self.name1TextField.text!, self.name2TextField.text!)}
.observe { event in
if let names = event.value {
print("received names \(names)")
}
}
self.startButton
.rac_signalForControlEvents(UIControlEvents.TouchUpInside)
.subscribeNext { event in
if let names = event.value {
print("received names \(names)")
}
}
如何通过点击 UIButton
创建 Signal
?
So far I tried to use target/action,但开始认为可能有更简单的方法。
在 article of Colin Eberhardt, 中指出 Signals
适用于 UI 操作。但是当我尝试使用 target/action 时,我需要创建一个 CocoaAction
最终用 SignalProducer
初始化。
我想要的是一些 Signal
会在每次用户点击时发出其 next
事件。然后我想将此信号转换为从 UITextFields
读取并继续这些值以在我的应用程序中使用它们。
使用@NachoSoto gist 中的便利函数,我能够通过 signalForControlEvents(UIControlEvents.TouchUpInside)
非常简单地实现这一点:
self.startButton
.signalForControlEvents(UIControlEvents.TouchUpInside)
.map { _ in (self.name1TextField.text!, self.name2TextField.text!)}
.observe { event in
if let names = event.value {
print("received names \(names)")
}
}
self.startButton
.rac_signalForControlEvents(UIControlEvents.TouchUpInside)
.subscribeNext { event in
if let names = event.value {
print("received names \(names)")
}
}