未调用 textFieldShouldReturn

Posted

技术标签:

【中文标题】未调用 textFieldShouldReturn【英文标题】:textFieldShouldReturn is not called 【发布时间】:2012-04-23 19:42:52 【问题描述】:

我想让键盘在用户点击“返回”按钮时消失,我被告知要使用

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
    [tf resignFirstResponder];
    return YES;

但是当我点击“返回”按钮时没有任何反应,甚至没有调用该方法。我正在这样做

@interface gameOverMenu : UIView

不在 ViewController 中。我也不使用界面生成器。我该怎么办?

【问题讨论】:

你是否将 UITextField 的委托设置为包含该方法的对象? 您是否将视图控制器指定为 【参考方案1】:

您需要确保实现 UITextFieldDelegate 并将您的 UITextField 委托设置为 self。在您的 .h 文件中:

@interface gameOverMenu : UIView <UITextFieldDelegate>

在你的 .m 文件中的某个地方(viewDidLoad:也许):

self.yourTextField.delegate = self;

现在应该调用您的 -(BOOL)textFieldShouldReturn:(UITextField *)textField 方法。

【讨论】:

没问题。仅供参考,因为我看到你是新人——如果我的答案对你有最大的帮助,通常的做法是将我的答案标记为正确。奖励系统:) 投票需要 15 声望 欢迎来到最有帮助的编码社区!感谢您的接受。 我觉得很奇怪,尽管在 IB 中拖动来设置 UITextField 的委托,但您仍然需要在代码中执行它才能工作。【参考方案2】:

确保您已将父类(无论它是什么)设置为 UITextFieldDelegate

【讨论】:

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

TextFieldShouldReturn 未被调用

textFieldShouldReturn - completionHandler 中的某些方法永远不会被调用

textFieldShouldReturn未在iOS中调用

在自定义 UITableCell 中从 UITextField 调用 textFieldShouldReturn 时遇到问题

以编程方式调用 TextFieldShouldReturn Swift

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