我有一个UITextField
,并希望每当它集中时执行一个动作。这是RxSwift可以管理的东西,还是我必须以旧的方式这样做?
经过几个小时的研究,我看到了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
是错的,我不知道为什么。也许与iOS上的响应者有关。关于“为什么.touchUpInside在这种情况下不会触发事件”的解释会很棒。