如何在按下返回键时在Swift中隐藏键盘?
问题的原因是在按下返回键后,键盘没有自动隐藏。解决方法是在按下返回键后,手动调用resignFirstResponder()
方法来隐藏键盘。
在textFieldShouldReturn
方法中,调用textField.resignFirstResponder()
来隐藏键盘,并返回true
。
在Xcode 6的测试版本中,自动补全功能可能有缺陷。
resignFirstResponder
方法是UIResponder类的方法,用于取消当前UI元素的焦点。
在最新版本的Xcode中,不再需要在true
后面加分号。
需要确保视图控制器遵循UITextFieldDelegate
协议。
使用self.view.endEditing()
来隐藏键盘是正确的方法。
以上方法已经成功实践。
问题的原因是键盘没有正确隐藏,解决方法是通过实现textFieldShouldReturn函数来隐藏键盘。以下是一个完整示例:
//
// ViewController.swift
//
//
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
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
}
}
在这个示例中,我们需要将myTextField的delegate设置为ViewController,以便实现UITextFieldDelegate协议中的函数。这样,在按下return键时,textFieldShouldReturn函数会被调用,将键盘隐藏起来。
此外,还有一些其他的问题和解答,例如为什么要改变FirstViewController的类型为UIViewController, UITextFieldDelegate,以及为什么在函数中加上不必要的self等。
在Swift中,当按下返回键时隐藏键盘的方法如下:
1. 创建一个UITextField的Action Outlet,并将其连接到"Primary Action Triggered"事件。可以通过从界面编辑器的outlet inspector(屏幕左侧)中将其拖动到代码中的IBAction来实现。
2. 在IBAction方法中,调用sender.resignFirstResponder()方法,来取消第一响应者状态,从而隐藏键盘。
3. 如果页面上有多个UITextField,可以将它们都连接到同一个Action Outlet上。
简单而有效的方法,适用于Swift 2及以上版本。
以上代码和方法来源于Scott Smith的60秒视频教程,并经过验证可以正常工作。这个方法可以满足在UITableViewCell中通过返回键隐藏键盘的需求。
如果有多个UITextField,可以将它们连接到同一个Action Outlet上,避免重复代码。
非常感谢这个方法,正好解决了我需要通过返回键隐藏键盘的问题。