07.RxSwift textFiled和textView

本文探讨了RxSwift中TextField和TextView在处理输入事件时遇到的问题,包括为何TextField的事件不触发,而TextView连续触发两次的原因。通过分析内部封装逻辑,提出了解决方案,即在TextField赋值时设置`sendActions(for: .allEditingEvents)`,并使用`.distinctUntilChanged`防止初始化时的默认调用。同时解释了TextField的响应流程。
摘要由CSDN通过智能技术生成

RxSwift textFiled和textView

1.测试代码
override func viewDidLoad() {
        super.viewDidLoad()

		// 1: textFiled & textView来了
        // 2: why 来两次
        textFiled.rx.text.subscribe(onNext: { (text) in
            print("输入来了 \(text)")
        })

        textView.rx.text.subscribe(onNext: { (text) in
            print("textView:输入来了 \(text)")
        })
        
        // event
        textFiled.addTarget(self, action: #selector(textFiledChange), for: .allEditingEvents)
        
    }
    
    @objc func textFiledChange() {
        print("laile")
    }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        textFiled.text = "LiHua"
        //textFiled.sendActions(for: .allEditingEvents)
        textView.text = "LiMing"
    }
  • 上面的代码会有两个问题:
  1. 当我执行 textFiled.text = "LiHua" textView.te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值