【发布时间】:2018-07-24 23:48:25
【问题描述】:
从 Objective C 到更高版本的 swift,我已经成功地使用 editingChanged 方法来检测 UITextField 中的文本何时更改。
但它似乎在 Swift 4 中不起作用。
我还尝试了以下几个在线文档:
textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: UIControlEvents.editingChanged)
而且这也无法命中提供的“@objc”函数。
现在当然有 shouldChangeCharactersIn 委托方法,但这里的限制是它在文本更改发生之前而不是之后运行,这意味着在它返回之前不会发生任何变异。
如果有任何想法,我将不胜感激,非常令人沮丧的是,对核心组件的这种微不足道的访问是如此难以捉摸。
【问题讨论】:
-
可能是您在 shouldChangeCharactersIn 内返回 false
-
感谢您的想法@Sh_Khan,但我可以确认
shouldChangeCharactersIn确实有效,根据问题,它只是在文本更改之前而不是之后被命中。 -
@JohnDoe 是的,它可以工作,但如果你在其中返回 false,那么即使正确实现也不会调用 textFieldDidChange
标签: objective-c swift uitextfield swift4