如何快速按回车键隐藏键盘?

我正在使用UITextfied同时点击textfied键盘出现,但是当我按下回车键,键盘不消失。我使用下面的代码。

 func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore. { return true; } 

方法resignfirstresponder不起作用。

您可以使用以下function使应用程序closures键盘

  func textFieldShouldReturn(_ textField: UITextField) -> Bool { self.view.endEditing(true) return false } 

下面是一个完整的例子来更好地说明:

 // // ViewController.swift // // import UIKit class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet var myTextField : UITextField override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.myTextField.delegate = self; } func textFieldShouldReturn(_ textField: UITextField) -> Bool { self.view.endEditing(true) return false } } 

代码来源: http : //www.snip2code.com/Snippet/85930/swift-delegate-sample

这只返回真正的部分告诉文本字段是否允许返回。 您必须手动指示文本字段closures键盘(或者它的第一个响应者),然后通过调用resignFirstResponder()来完成。

 func textFieldShouldReturn(textField: UITextField) -> Bool // called when 'return' key pressed. return false to ignore. { textField.resignFirstResponder() return true } 
  • UITextFieldDelegate添加到类声明中:

     class ViewController: UIViewController, UITextFieldDelegate 
  • 连接textfield或编程写入

     @IBOutlet weak var userText: UITextField! 
  • 设置你的视图控制器为文本字段委托在视图中加载:

     override func viewDidLoad() { super.viewDidLoad() self.userText.delegate = self } 
  • 添加以下function

     func textFieldShouldReturn(userText: UITextField!) -> Bool { userText.resignFirstResponder() return true; } 

    所有这一切你的键盘将开始通过触摸外面的文本字段以及按回车键解雇。

简单的Swift 3解决scheme:将这个function添加到您的视图控制器,它具有一个文本字段:

 @IBAction func textField(_ sender: AnyObject) { self.view.endEditing(true); } 

然后打开你的助理编辑器,并确保你的Main.storyboard在你的视图的一侧,而所需的视图controller.swift文件在另一侧。 点击文本字段,然后从右侧的实用程序面板中select“显示连接检查器”选项卡。 在你的swift文件中控制从'退出结束'拖动到上面的函数。 重复该场景中的任何其他文本字段并链接到相同的function。

@RSC

对我来说,Xcode版本6.2(6C86e)的重要补充是override func viewDidLoad()

  self.input.delegate = self; 

试图让它与返回键工作了几个小时,直到我find你的post,RSC。 谢谢!

另外,如果你想隐藏键盘,如果你触摸屏幕上的其他地方:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { self.view.endEditing(true); }

为了获得自动键盘解除,我把这个代码放在我的自定义文本字段类的一个方法中:

 textField.addTarget(nil, action:"firstResponderAction:", forControlEvents:.EditingDidEndOnExit) 

用你的sockets的名字replacetextField

另一种做法主要是使用情节串联的方式,可以让你有多个文本字段:

 @IBAction func resignKeyboard(sender: AnyObject) { sender.resignFirstResponder() } 

将该视图控制器的所有文本字段连接到每个字段的Did End On Exit事件上的操作。

我会强制从RSC初始化类:

 import Foundation import UIKit // Don't forget the delegate! class ViewController: UIViewController, UITextFieldDelegate { required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } @IBOutlet var myTextField : UITextField? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.myTextField.delegate = self; } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func textFieldShouldReturn(textField: UITextField!) -> Bool { self.view.endEditing(true); return false; } 

}

当用户点击文本键盘上的“完成”button时,会产生“结束退出”事件。 那时候,我们需要告诉文本字段放弃控制,这样键盘就会消失。 为了做到这一点,我们需要添加一个操作方法到我们的控制器类。 selectViewController.swift添加下面的操作方法:

 @IBAction func textFieldDoneEditing(sender: UITextField) { sender.resignFirstResponder()} 

在Project Navigator中selectMain.storyboard并调出连接检查器。 从Did End On Exit旁边的圆圈拖到故事板中的黄色View Controller图标,然后松手。 一个小的popup菜单将出现,其中包含一个单一动作的名称,我们刚刚添加的。 点击textFieldDoneEditing动作来select它,就是这样。

这里是和平型评论的Swift 3.0更新:

 textField.addTarget(nil, action:Selector(("firstResponderAction:")), for:.editingDidEndOnExit) 

Swift 3

将以下代码添加到您的VC

 //hide keyboard when user tapps on return key on the keyboard func textFieldShouldReturn(_ textField: UITextField) -> Bool { self.view.endEditing(true); return false; } 

为我工作

确保你的textField委托被设置为你正在编写你的文本域相关代码的视图控制器。

 self.textField.delegate = self 

你可以把它放在任何地方,但不能放在UIButton中

  func TextFieldEndEditing(text fiend name: UITextField!) -> Bool { return (false) } 

那么你可以把这个代码放在一个button中(例如):

 self.view.endEditing(true) 

这对我工作

迅速

使用UITextFieldDelegate可选函数。

 func textFieldShouldReturn(_ textField: UITextField) -> Bool { return textField.endEditing(false) } 

false意味着可以要求辞职。 true力量辞职。