RxSwift:当textfield获得焦点时升级模型状态
发布时间:2020-12-14 04:48:08 所属栏目:百科 来源:网络整理
导读:我有一个带有3个UITextField的UIViewController.每当其中一个字段获得焦点时,我想为上面的提示标签设置一个新的文本值.使用Rx Swift实现这一目标的最佳方法是什么? 解决方法 这就是你要找的东西.每当UITextField发送textFieldDidBeginEditing:delegate消息
我有一个带有3个UITextField的UIViewController.每当其中一个字段获得焦点时,我想为上面的提示标签设置一个新的文本值.使用Rx
Swift实现这一目标的最佳方法是什么?
解决方法
这就是你要找的东西.每当UITextField发送textFieldDidBeginEditing:delegate消息时,您都会获得一个Observable.然后将Observable映射到该文本字段的正确字符串.然后将所有这三个Observable组合成一个,其中最新事件来自最近调用该委托消息的文本字段.然后将该值绑定到工具提示的文本.
import UIKit import RxSwift import RxCocoa class ViewController: UIViewController { let disposeBag = DisposeBag() @IBOutlet weak var tooltip: UILabel! @IBOutlet weak var textField1: UITextField! @IBOutlet weak var textField2: UITextField! @IBOutlet weak var textField3: UITextField! override func viewDidLoad() { super.viewDidLoad() let textField1Text = textField1.rx_controlEvent(.EditingDidBegin) .map { "text field 1 message" } let textField2Text = textField2.rx_controlEvent(.EditingDidBegin) .map { "text field 2 message" } let textField3Text = textField3.rx_controlEvent(.EditingDidBegin) .map { "text field 3 message" } Observable.of(textField1Text,textField2Text,textField3Text).merge() .bindTo(tooltip.rx_text) .addDisposableTo(disposeBag) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |