未调用 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 错误
UITextFieldDelegate 的 textField 方法没有被调用
启用/禁用 UIButton 取决于 UITextField 中的文本长度