在UITextField中按回车键时如何隐藏键盘?

ade*_*den 146 cocoa-touch delegates objective-c ios

单击文本字段可以显示键盘.当用户按下返回键时,如何隐藏它?

Sau*_*abh 276

首先为UITextField创建文件委托

@interface MYLoginViewController () <UITextFieldDelegate>

@end
Run Code Online (Sandbox Code Playgroud)

然后将此方法添加到您的代码中.

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

还添加 self.textField.delegate = self;

  • 如果使用Interface Builder创建文件委托,则.h文件中不需要<UITextFieldDelegate>. (7认同)

osc*_*lon 61

viewDidLoad宣告:

[yourTextField setDelegate:self];

然后,包括委托方法的覆盖:

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

  • 'setDelegate:`提醒的+1.肯定已经忘记,代码以前没有工作. (6认同)
  • 这不应该是textField,而不是你传入的yourTextField吗? (2认同)

Zai*_*han 20

Swift中尝试这个,

第1步:将委托作为自己设置为您的textField

textField.delegate = self
Run Code Online (Sandbox Code Playgroud)

第2步:在您的类声明下面添加此UITextFieldDelegate,

extension YourClassName: UITextFieldDelegate {
    func textFieldShouldReturn(textField: UITextField) -> Bool {
         textField.resignFirstResponder()
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)


Hom*_*mam 14

在swift中这样做:
首先在你的ViewController实现中UITextFieldDelegate 为例如.

class MyViewController: UIViewController, UITextFieldDelegate {
....
}
Run Code Online (Sandbox Code Playgroud)

现在TextField,在viewDidLoad下面的方法或初始化方法中点击返回时,将一个委托添加到要关闭键盘的代理中.例如.

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

现在添加此方法.

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}
Run Code Online (Sandbox Code Playgroud)