在 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)")
         }
     }