如何使用RxSwift 与UITextfield 实现如下逻辑?
How to use RxSwift to implement the following logic with UITextfield?
TextCode 右侧有一个UItextField
。
密码右侧有一个UItextField
。
使用RxSwift实现如下逻辑。
SelectAlertItem
AlertViewControll sheet样式有A,B,C三个选项,现在我可以实现选择逻辑了。
我不知道如何使用RxSwift来实现下面的逻辑
以下是我的关键逻辑:只有当selectedItem为B时,TextCodeTextField文本必须在编辑结束时复制到PassCodeTextField。
即SelectType为B,TextCodeTextField输入"11111",editingend,则PassCodeTextField为"11111"。
如何使用RxSwift与UITextfield实现如下逻辑?
以下是使用我的因果逻辑效果架构(带注释)的方法:
import Cause_Logic_Effect
import RxCocoa
import RxSwift
import UIKit
final class ViewController: UIViewController {
var textCodeField: UITextField!
var selectTypeAction: UIButton!
var selectTypeLabel: UILabel!
var passCodeField: UITextField!
let disposeBag = DisposeBag()
}
extension ViewController {
func connect() {
// when user taps the selectTypeAction, display an action sheet alert to
// get the selection type from the user.
let selectType = selectTypeAction.rx.tap
.flatMapFirst(
presentScene(animated: true, over: selectTypeAction, scene: {
UIAlertController(
title: nil,
message: "Select Item:",
preferredStyle: .actionSheet
)
.scene { [=10=].connectChoice(choices: ["A", "B", "C"]) }
})
)
.share()
// when the user selects "B" grab the last value entered in the
// textCodeField and push it to the passCodeField
selectType
.compactMap { [=10=] }
.filter { [=10=] == "B" }
.withLatestFrom(textCodeField.rx.text)
.bind(to: passCodeField.rx.text)
.disposed(by: disposeBag)
// when the user selects a value push the value to the selectTypeLabel
selectType
.bind(to: selectTypeLabel.rx.text)
.disposed(by: disposeBag)
}
}
TextCode 右侧有一个UItextField
。
密码右侧有一个UItextField
。
使用RxSwift实现如下逻辑。
SelectAlertItem
AlertViewControll sheet样式有A,B,C三个选项,现在我可以实现选择逻辑了。
我不知道如何使用RxSwift来实现下面的逻辑
以下是我的关键逻辑:只有当selectedItem为B时,TextCodeTextField文本必须在编辑结束时复制到PassCodeTextField。
即SelectType为B,TextCodeTextField输入"11111",editingend,则PassCodeTextField为"11111"。
如何使用RxSwift与UITextfield实现如下逻辑?
以下是使用我的因果逻辑效果架构(带注释)的方法:
import Cause_Logic_Effect
import RxCocoa
import RxSwift
import UIKit
final class ViewController: UIViewController {
var textCodeField: UITextField!
var selectTypeAction: UIButton!
var selectTypeLabel: UILabel!
var passCodeField: UITextField!
let disposeBag = DisposeBag()
}
extension ViewController {
func connect() {
// when user taps the selectTypeAction, display an action sheet alert to
// get the selection type from the user.
let selectType = selectTypeAction.rx.tap
.flatMapFirst(
presentScene(animated: true, over: selectTypeAction, scene: {
UIAlertController(
title: nil,
message: "Select Item:",
preferredStyle: .actionSheet
)
.scene { [=10=].connectChoice(choices: ["A", "B", "C"]) }
})
)
.share()
// when the user selects "B" grab the last value entered in the
// textCodeField and push it to the passCodeField
selectType
.compactMap { [=10=] }
.filter { [=10=] == "B" }
.withLatestFrom(textCodeField.rx.text)
.bind(to: passCodeField.rx.text)
.disposed(by: disposeBag)
// when the user selects a value push the value to the selectTypeLabel
selectType
.bind(to: selectTypeLabel.rx.text)
.disposed(by: disposeBag)
}
}