UITextfield 子类没有响应 insertText:UIKeyInput 协议的方法
Posted
技术标签:
【中文标题】UITextfield 子类没有响应 insertText:UIKeyInput 协议的方法【英文标题】:UITextfield subclass not responding to insertText: method of UIKeyInput protocol 【发布时间】:2013-08-28 16:54:09 【问题描述】:我想观察UITextfield
子类中的文本输入。为此,我试图在该子类中实现UIKeyInput
协议方法。但是永远不会调用 insertText:
和 hasText
方法。然而deleteBackward
方法被调用。你知道为什么不调用这些方法吗?当我用UIView
子类测试相同的场景时,我看到UIKeyInput
协议中的所有方法都被调用了。
如果这不起作用,是否有任何其他方法可以注意到 UITextField
子类中的文本输入?
我知道UITextFieldDelegate
的- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
方法。但我想控制UITextField
的子类中的字符输入,而不是通过它的委托。
【问题讨论】:
【参考方案1】:似乎UITextField
正在使用UITextInput
协议来实现此功能。也许您可以使用UITextField
作为自己的代表。
【讨论】:
我尝试使用 UITextInput 协议,但仍然没有调用 insertText: 方法。我想创建一个通用 UITextField 的子类,它可以自己控制字符输入。而且我想为其他类保留将 UITextField 的子类对象的委托分配给他们想要的任何对象的灵活性。以上是关于UITextfield 子类没有响应 insertText:UIKeyInput 协议的方法的主要内容,如果未能解决你的问题,请参考以下文章
存储指针并辞去第一响应者后无法重新聚焦 UITextField
UITextField 子类在 becomeFirstResponder 抛出奇怪的异常
iOS 在组件中存储随机属性,例如没有子类的 UITextField