未调用 TextField 委托方法

Posted

技术标签:

【中文标题】未调用 TextField 委托方法【英文标题】:TextField delegate method not being called 【发布时间】:2013-02-05 08:58:17 【问题描述】:

我正在开发针对 ios 5 的项目。我面临一个非常奇怪的问题。我正在设置

代表我的文本字段为

self.myTextField.delegate=self;(in viewDidLoad)

甚至尝试在 nib 中设置委托。但他们都没有触发

遵循 textField 委托方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

- (void)textFieldDidBeginEditing:(UITextField *)textField

我什至尝试为 textField 提供操作,但效果不佳。我想知道这是不是一个

iOS5 中的问题。非常感谢任何帮助。

【问题讨论】:

您是否在 .h 文件中设置了 UITextFieldDelegate 您确定使用的是文本字段而不是文本视图吗? 是的,我正在使用 textField 本身 你是否在协议上设置了断点并检查它是否在这些协议上运行? 是的,我已经设置了断点。它没有进入 【参考方案1】:

检查这些点,

首先检查协议,接口中<UITextFieldDelegate>

检查IBOutlet的属性是否附有视图;

记住与插座的连接非常重要

然后在viewDidLoad检查[self.txtField setDelegate:self];

然后委托方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

- (void)textFieldDidBeginEditing:(UITextField *)textField

【讨论】:

【参考方案2】:

您是否在视图中提供了相同的已分配 iboutlet 对象?如果您从实用的加载视图创建并为其分配了一个视图。否则请检查是否使用任何动画部分,请评论并验证。

【讨论】:

好吧,我弄错了。我的 textField 的用户交互在 nib 中被禁用。我输入到 textField 的数据是通过我的自定义键盘。当我手动单击此 textField 时,会正确调用委托方法。 请先验证您的代码并反复分析。它会提高你的分析能力。拉杰先生

以上是关于未调用 TextField 委托方法的主要内容,如果未能解决你的问题,请参考以下文章

Swift TextField 方法未调用,委托已设置,现在 BAD_ACCESS 错误

未调用Textfield Delegate函数

UITextFieldDelegate 的 textField 方法没有被调用

启用/禁用 UIButton 取决于 UITextField 中的文本长度

调用文本字段:应该从委托方法ReplaceCharactersInRange

退格键不调用 uitextfield 的方法