iOS 12 - 一次性验证码 OTP 委托

4

当用户点击iOS提供的OTP建议时,是否有任何delegate会被触发?

我知道我可以使用UITextFieldDelegate方法来检测textfieldtext属性的变化,但是如果知道用户按下了按钮,事情会变得更容易...


经过相当多的研究,我也无法直接找到任何代理来实现这个目的。但是我发现OTP通常在空文本字段上实现。因此,在零文本的情况下使用textFieldDidBeginEditing有助于解决这个问题。 - M Abubaker Majeed
2个回答

3
根据苹果公司的文章:关于密码自动填充工作流程
对于 iOS 应用程序,系统始终在视图已修改时发送 textDidChangeNotification 通知。它还调用视图的一个委托方法——但确切的方法取决于视图的类型:
- UITextField:系统调用您的 UITextFieldDelegate 对象的 textField(_:shouldChangeCharactersIn:replacementString:) 方法。 - UITextView:系统调用您的 UITextViewDelegate 对象的 textView(_:shouldChangeTextIn:replacementText:) 方法。 - 通过采用 UITextInput 协议的自定义视图:系统在 UIKeyInput 协议中调用 insertText(:) 方法或 replace(:withText:) 方法。
您可以创建 UITextField 或 UITextView 的子类并重写 insertText(:) 方法和 replace(:withText:) 方法,当用户点击快捷栏时将调用这些方法。

3
在我的情况下,我发现当我在 应更改字符 中收到一条文本时,我得到了两个空格,于是我知道那是自动填充字符,因此根据它,我逐个更新我的四个文本字段。最初的回答。

我遇到了相同的问题。接收到两个空格,请问您是如何解决这个问题的? - Mughees Musaddiq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接