UITextField 更改事件不会针对语音或粘贴输入触发

Posted

技术标签:

【中文标题】UITextField 更改事件不会针对语音或粘贴输入触发【英文标题】:UITextField change event does not fire for speech or pasted input 【发布时间】:2015-06-25 17:22:18 【问题描述】:

在 Xcode 6.2 中,当尝试在使用键盘上的语音按钮输入文本时触发 UITextField 'Editing Changed' 事件或 'Value Changed' 事件时,它可以完美地使用键入的输入但当输入是粘贴或使用语音识别输入的

【问题讨论】:

您是否尝试过添加 UITextField 委托方法? developer.apple.com/library/ios/documentation/UIKit/Reference/…: 是的。那是关键。谢谢你。我使用了 shouldChangeCharactersINRange 并在使用 Speech 按钮时触发。 @dichen 【参考方案1】:

您可能想要使用或破解另一个委托 shouldChangeCharactersInRange,它会在文本更改时被调用

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    
    // Do your stuff or raise a event when it is Pasted.
    // You can figure out if isPasted from the pattern of range.

    return YES;

【讨论】:

以上是关于UITextField 更改事件不会针对语音或粘贴输入触发的主要内容,如果未能解决你的问题,请参考以下文章

Swift Combine - 如何获得一个发布者,为 UITextField 的文本属性的每个字符更改提供事件

我可以在UITextView和UITextField上面更改“复制”气泡的颜色吗? [重复]

MonkeyTalk 无法识别 UITextfield 输入事件 [关闭]

如何禁用 UITextField 的选择?

编辑时更改 uitextfield 返回键类型

UITextField 不会正确更改文本颜色