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'的方法:
确保你的MultiSalesViewController
实现了UITextFieldDelegate
协议:
@interface MultiSalesViewController : UIViewController <UITextFieldDelegate>
尝试在[self becomeFirstResponder];
之后添加[textField resignFirstResponder];
编辑:只是另一个想法..你的UITextField
有returnKeyType
的值设置?
txtCardNumber.returnKeyType = UIReturnKeyDone;
我不确定是否必须设置此功能才能工作
转到Connection Inspector并将委托连接到视图控制器.thats it。
以上是关于textFieldShouldReturn未在iOS中调用的主要内容,如果未能解决你的问题,请参考以下文章
textFieldShouldReturn 无法在 swift 3 中将焦点从一个文本字段更改为另一个文本字段
从 UIBarButtonItem 触发 textFieldShouldReturn