【发布时间】:2014-07-15 08:49:35
【问题描述】:
我创建了一个自定义输入视图,用于在UITextField 中输入文本。基本上它只是定制设计的数字键盘。我有文本字段,我在其上设置了 inputView 属性以使用我自定义创建的UIView 子类。在那个视图中,我收集了从 0 到 9 的按钮以及退格键。
现在我想在点击这些按钮时以编程方式更改 UITextField 的文本。 UITextField采用UITextInput协议,而后者又采用UIKeyInput协议。在该协议中,我拥有我需要的所有方法,即将文本插入光标位置并删除文本。
问题是这些方法不会触发UITextField 委托方法。也就是说,如果我在 textField:shouldChangeCharactersInRange:replacementString: 字段中进行了自定义验证,那将无法正常工作。我试过直接设置UITextField的text属性,但是也没用。
在UITextField 中插入文本的正确方法是什么,我的意思是以调用所有委托方法的方式插入文本?
【问题讨论】:
-
请添加您的代码...如果您使用的是 UITextField 的 setText:,则不会调用委托方法。
-
我认为不需要代码,因为它只是一行 - textField.text = @"myText";是的,它不像我在问题中所说的那样调用委托,所以我问这个问题以找到解决方法。
-
trojanfoe 不幸的是它没有。我尝试了这些示例,但委托方法仍然没有触发。
-
好的,您知道要插入的文本,因此您应该能够在插入之前对其进行验证,从而减少对代理的需求。听起来不是一个很难解决的问题。
标签: ios objective-c uitextfield uitextfielddelegate