直接编辑UITextField.text属性,UITextFieldDelegate不会触发

时间:2011-01-10 08:47:06

标签: ios delegates uitextfield

如果直接编辑UITextField.text属性,则不会触发UITextFieldDelegate。有没有正确的方法将UITextField与自定义输入视图一起使用?我创建了自己的numberpad viewcontroller,我可以修改UITextField.text,但如果我没有从UITextFieldDelegate.shouldChangeCharactersInRange收到事件,我就无法获取光标位置。

了解在UITextField中使用自定义输入的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

请确保

yourTextField.delegate = self

您的实施文件中的这一行

答案 1 :(得分:0)

我还为我们的应用程序创建了一个自定义小键盘。你是对的shouldChangeCharactersInRange没有响应程序化文本更改(通过setText)。我们在文本字段中使用UIControlEventEditingChanged事件:

[aField addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];

不幸的是,有currently no way来访问shouldChangeCharactersInRange之外的UITextField的光标位置。您可以使用this pasting method在光标处插入文本。至于自定义删除键,我们现在使用“始终删除字段中的最后一个字符”规则。