【问题标题】:RxSwift - Verifying if text field is focusedRxSwift - 验证文本字段是否聚焦
【发布时间】:2017-12-16 15:00:38
【问题描述】:

我有一个UITextField,并希望在每次聚焦时执行一个动作。这是 RxSwift 可以管理的,还是我必须以旧的方式来管理?

【问题讨论】:

  • textField.rx.controlEvent(UIControlEvents) 呢?
  • 我看到了一些关于它但不知道如何使用它。

标签: ios swift reactive-programming rx-swift reactivex


【解决方案1】:

经过几个小时的研究,我看到了 this issue on their GitHub page 并通过了它。

原来我的代码是:

txtDate
    .rx
    .controlEvent(UIControlEvents.touchUpInside)
    .map{ true }
    .bind(to: txtDateHasFocused).disposed(by: disposeBag)

这根本没有产生任何反应。不幸的是我不知道为什么。检查UITextField 是否被聚焦(或被编辑)的正确方法是:

txtDate
    .rx
    .controlEvent(UIControlEvents.editingDidBegin) // Here is the key
    .map{ true }
    .bind(to: txtDateHasFocused).disposed(by: disposeBag)

原来我使用的UIControlEvent 是错误的,我也不知道为什么。 Maybe 与 iOS 上的响应者有关。关于“为什么 .touchUpInside 在这种情况下不触发事件”的解释会很棒。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多