textFieldShouldReturn未在iOS中调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了textFieldShouldReturn未在iOS中调用相关的知识,希望对你有一定的参考价值。

我们试图弄清楚如何让键盘隐藏起来,但是我们遇到了让textFieldShouldReturn开火的问题。为什么?

这就是做了什么:

*。H

@interface MultiSalesViewController : UIViewController <UITextFieldDelegate>

*。C

txtCardNumber.delegate = self;

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField setUserInteractionEnabled:YES];
    [textField resignFirstResponder];
    return YES;
}

此外,textField将其委托设置为Interface Builder中的文件所有者。奇怪的是,viewController的- (void)textFieldDidEndEditing:(UITextField *)textField正在运行。

如何隐藏键盘工作?

答案

我有完全相同的问题,因为我忘了将界面构建器中的文本字段的委托设置为“文件所有者”。

另一答案

检查表让它工作:

  • 您是否将控制器设置为UITextField实例的委托?
  • 确保通过分配属性(自动释放)或显式保留控制器来取消分配控制器。
另一答案

我遇到了同样的问题,正如Warren Crowther建议的那样,我设法通过按住CTRL并从TextBox拖动到“File's Owner”标签来解决它。

(天哪,我有时想念Visual Studio ...... !!)

(抱歉重复已经说过的话,但我认为截图可能有用!)

另一答案

我有代表集和一切。但我使用的是UITextView而不是UITextfield ...

也许这将有助于某人试图找出为什么没有触发委托方法。

另一答案

我看到你把它放在你的代码中,但对于将来的访问者,将其添加到你的代码中:

yourTextField.delegate = self;

另一答案

我认为你正在使用xib。如果是这样你还需要在那里设置委托。右键单击xib中的UITextfiled,您将有委托选项将其拖动到文件所有者。

另一答案

以下是来自Mike Gledhill和Warren Crowther的回答,更新了xcode 5截图。

(要设置UITextField委托,按住ctrl +从UITextField拖动到“文件所有者”黄色按钮,如下图所示。如果未设置UITextField委托,则永远不会调用textFieldShouldReturn方法)。

另一答案

我把所有东西都连接起来,- (BOOL)textFieldShouldReturn:(UITextField *)textField仍然没有被召唤!

作为解决方法,我配置了一个触发'EditingDidEnd'的方法:

enter image description here

另一答案

确保你的MultiSalesViewController实现了UITextFieldDelegate协议:

@interface MultiSalesViewController : UIViewController <UITextFieldDelegate>

尝试在[self becomeFirstResponder];之后添加[textField resignFirstResponder];


编辑:只是另一个想法..你的UITextFieldreturnKeyType的值设置?

txtCardNumber.returnKeyType = UIReturnKeyDone;

我不确定是否必须设置此功能才能工作

另一答案

转到Connection Inspector并将委​​托连接到视图控制器.thats it。

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

textFieldShouldReturn 无法在 swift 3 中将焦点从一个文本字段更改为另一个文本字段

iOS 关闭/收起虚拟键盘的若干方法

未调用 textFieldShouldReturn

从 UIBarButtonItem 触发 textFieldShouldReturn

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

TextFieldShouldReturn 未被调用