如何在iPhone上制作返回键使键盘消失?

K.H*_*nda 108 iphone uitextfield uikeyboard ios

我有两个UITextFields(例如用户名和密码),但是当按下键盘上的返回键时我无法摆脱键盘.我怎样才能做到这一点?

Sid*_*Sid 241

首先,您需要UITextFieldDelegate在View/ViewController的头文件中符合协议,如下所示:

@interface YourViewController : UIViewController <UITextFieldDelegate>
Run Code Online (Sandbox Code Playgroud)

然后在.m文件中,您需要实现以下UITextFieldDelegate协议方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

[textField resignFirstResponder]; 确保键盘被解除.

在.m中初始化文本字段后,确保将view/viewcontroller设置为UITextField的委托:

yourTextField = [[UITextField alloc] initWithFrame:yourFrame];
//....
//....
//Setting the textField's properties
//....    
//The next line is important!!
yourTextField.delegate = self; //self references the viewcontroller or view your textField is on
Run Code Online (Sandbox Code Playgroud)

  • 您还可以通过单击文本字段,在"实用工具"面板中单击"连接检查器",将代理插座拖到视图控制器上来实现故事板中的委托. (7认同)

Nic*_*ver 19

像这样实现UITextFieldDelegate方法:

- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
    [aTextField resignFirstResponder];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)


Cal*_*leb 8

有关此主题的完整讨论,请参阅管理键盘.


csc*_*arz 6

您的UITextField应该有一个委托对象(UITextFieldDelegate).在委托中使用以下代码使键盘消失:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

到目前为止应该工作......


小智 6

我做了几次试验,有同样的问题,这对我有用:

检查你的拼写 -

(BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
Run Code Online (Sandbox Code Playgroud)

我纠正了我,textField而不是textfield,大写"F"......和宾果!有效..