如何隐藏键盘iPhone应用程序

时间:2011-07-08 18:38:34

标签: iphone objective-c xcode ios4

用户按“完成”后,如何隐藏键盘,或点击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。我的错误....感谢您的帮助

6 个答案:

答案 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”功能选项

你已经完成了。