UIViewController
には3 UITextField
があります。いずれかのフィールドにフォーカスが移るたびに、上記のヒントラベルの新しいテキスト値を設定します。 RxSwift
でこれを達成する最良の方法は何ですか?RxSwift:テキストフィールドがフォーカスを取得したときのモデル状態をアップグレードします
4
A
答えて
8
これはあなたが探しているものです。 UITextField
はtextFieldDidBeginEditing:
デリゲートメッセージを送信するたびに、その代わりにObservable
を取得します。次に、そのテキストフィールドの正しい文字列にそのObservable
をマッピングします。その後、Observableの3つすべてを1つにまとめます。最新のイベントは、最後にそのデリゲートメッセージを呼び出したテキストフィールドからのものです。次に、その値をツールチップのテキストにバインドします。
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)
}
}
+1
ありがとう、@solidcell!それはまさに私が探していたものです! – alexxjk
関連する問題
- 1. C# - テキストフィールドがフォーカスを取得したとき(他のプログラムでも)?
- 2. テキストフィールドにフォーカスし、チェック状態に基づいてフォーカスを外す
- 3. Excelがフォーカスを取得したときのマクロまたはイベント
- 4. 状態の取得選択した国の状態のリスト
- 5. テキストフィールドでrxSwiftを設定しますか?
- 6. 剣道ツールバーボタンの状態を取得し、ロード状態にリセットします
- 7. Android Camera2のフォーカス状態が貼り付けられました
- 8. リクエストを介した状態の取得と永続化
- 9. Xamarin.Formsは、Entryがフォーカスを取得したときにソフトキーボードを表示します。
- 10. スピナーチェックボックスボックスの状態が偽の取得と
- 11. Android:フォーカスされた状態で押した状態のドロアブルを使用してImageButtonを描画する方法
- 12. 失敗:テキストフィールドに.sendKeys()を試行したときに無効な要素状態
- 13. デバイスがスリープ状態になった後にANRを取得しました(Android)
- 14. ウィンドウがフォーカスされていない状態でキーボードイベントを取得する
- 15. LinearLayoutは子のフォーカスを変更セレクタの状態にします
- 16. ハンドルのドロップダウンのフォーカス状態
- 17. の保存フォーカス状態
- 18. モデルの状態が無効
- 19. hadoopなしでジョブを実行すると状態を取得
- 20. 休止状態を取得
- 21. Androidの前の状態を取得しますか?
- 22. カスタムUITableViewCellのUISwitchの状態を取得します。
- 23. ホバー、アクティブ、フォーカス状態は値を継承しますか?
- 24. Androidフォーム:フォーカスされたテキストフィールドIDを取得
- 25. Reduxデコレータは反応コンポーネント状態のデータを取得します
- 26. mysqlは特定の日付に状態を取得します
- 27. reactjs、forループの状態で配列を取得しますか?
- 28. GRPCの接続状態を取得しています
- 29. ReactJsは子コンポーネントの状態を取得します
- 30. Androidのウェブビューのズームバックの問題、ユーザーがテキストフィールドからフォーカスを外したとき
明確にするために、フォーカスを受け取ったフィールドは問題ではありませんか? – solidcell