[英]Get Signal from tap on UIButton in Reactive Cocoa 4
How can I create a Signal
from a tap on a UIButton
? 如何通过点击UIButton
创建Signal
?
So far I tried to use target/action , but have come to think that there might be an easier way. 到目前为止,我尝试使用目标/操作 ,但已经开始认为可能有一种更简单的方法。
In an article of Colin Eberhardt, it is stated that Signals
are appropriate for UI actions. 在Colin Eberhardt的一篇文章中,声明Signals
适用于UI操作。 But when I tried to make my around with target/action , I needed to create a CocoaAction
was ultimately initialised with a SignalProducer
. 但是当我尝试使用target / action时 ,我需要创建一个CocoaAction
,最终使用SignalProducer
初始化。
What I want is some Signal
that emits its next
events with every user tap. 我想要的是一些Signal
,它会在每个用户点击时发出next
事件。 I then want to transform this Signal to read from UITextFields
and carry on those values to use them in my application. 然后我想将此信号转换为从UITextFields
读取并继续执行这些值以在我的应用程序中使用它们。
Using convenience functions from this gist by @NachoSoto, I was able to achieve this quite simply with signalForControlEvents(UIControlEvents.TouchUpInside)
: 使用@NachoSoto的这个要点的便利函数,我能够通过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)")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.