gpt4 book ai didi

swift - Rx swift : upgrade model state when textfield gets focus

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:30 24 4
gpt4 key购买 nike

我有一个带有 3 个 UITextFieldUIViewController。每当其中一个字段获得焦点时,我想为上面的提示标签设置一个新的文本值。使用 RxSwift 实现此目的的最佳方法是什么?

最佳答案

这可以满足您的需求。任何时候 UITextField 将发送一个 textFieldDidBeginEditing: 委托(delegate)消息,你反而会得到一个 Observable。然后将 Observable 映射到该文本字段的正确字符串中。然后将所有 3 个 Observables 组合成一个,其中最新事件来自最近调用该委托(delegate)消息的文本字段。然后将该值绑定(bind)到工具提示的文本。

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

关于swift - Rx swift : upgrade model state when textfield gets focus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com