【问题标题】:TextField delegate method not being called未调用 TextField 委托方法
【发布时间】: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 本身
  • 你是否在协议上设置了断点并检查它是否在这些协议上运行?
  • 是的,我已经设置了断点。它没有进入

标签: objective-c cocoa-touch ios5 uitextfielddelegate


【解决方案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 时,会正确调用委托方法。
    • 请先验证您的代码并反复分析。它会提高你的分析能力。拉杰先生
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2015-06-09
    • 2016-07-16
    • 2019-01-04
    相关资源
    最近更新 更多