用户按“完成”后,如何隐藏键盘,或点击UITextField?
我已将此代码放在AppDelegate中:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
我已将IB中的UITextField委托链接到文件所有者..
我做错了什么?
编辑:Changin返回NO - >返回YES什么都不做。我打开IB并点击文件的所有者 - >连接选项卡,有多个引用插座都指向UITextfields。它仍然没有工作..更新:
我将此添加到我的功能中:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
int i = 5;
NSLog(@"%d", i);
return YES;
}
在将焦点设置到文本字段后按返回时,没有任何内容被打印到控制台...所以它没有调用该函数。我错误地连接了什么东西吗?我有返回键作为'Done'too,不确定这是否有所作为?
更新:
我在AppDelegate中使用了testfieldShouldReturn函数,而不是我的viewcontroller。我的错误....感谢您的帮助
答案 0 :(得分:1)
您的代码看起来不错。你能确保你确实正确设置了委托连接吗?尝试将NSLog添加到委托方法以查看它是否被调用。
...
您的问题更新指出这绝对是一个连接问题。尝试Vince建议并在代码中明确设置委托。您可能希望在视图控制器的viewDidLoad方法中执行此操作,以确保在设置其委托之前实际已加载textField。回复一下是否有效。
答案 1 :(得分:1)
只需将您的app delegate设置为UITextField的委托。
[textField setDelegate:self];
在应用代表的-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
方法中进行设置。
答案 2 :(得分:0)
将return NO;
替换为return YES;
。
这适用于我的代码。
编辑:我错了。返回值不是这里的问题。拨打resignFirstResponder
时,键盘应隐藏。
答案 3 :(得分:0)
因为您希望textfield返回。您应该return YES;
而不是NO
。
答案 4 :(得分:0)
在你的.h
-(IBAction)hideKeyboard:(id)sender;
在.m或.mm
中-(IBAction)hideKeyboard:(id)sender {
[(UITextField*)sender resignFirstResponder];
}
然后只需将它们在“界面”构建器中链接到文本字段的“退出时结束”事件。
答案 5 :(得分:0)
希望这个视频教程能帮到你..
http://www.thenewboston.com/?p=1368&pOpen=tutorial
在返回键上调用 textFieldShouldReturn 功能按此按钮执行此操作:
1)右键单击文本字段,键盘弹出。 2)选择第一个选项“退出时结束”。 3)将蓝线拖到文件所有者,您可以选择“hideKeyboard”功能选项
你已经完成了。