UITextField 不会关闭
UITextField wont dismiss
我目前正在制作一个包含 UITextField 的应用程序,它们一直按预期工作,但是当我最近去测试我的应用程序时,我注意到在我按下 UITextField 后键盘没有消失。在我点击离开或按下 return 之前它就像正常关闭一样,但现在我无法做任何事情让它关闭?
这是我当前的 ViewController 代码:
import UIKit
class CreateNewBudgetVC: UIViewController {
@IBOutlet weak var grossIncomeVal: UITextField!
@IBOutlet weak var locationVal: UITextField!
@IBOutlet weak var federalExptVal: UITextField!
@IBOutlet weak var stateExptVal: UITextField!
@IBOutlet weak var deductionsList: UITableView!
@IBAction func cancelPressed(_ sender: Any) {
performSegue(withIdentifier: "CancelSegue", sender: self)
}
@IBAction func generateBudgetPressed(_ sender: Any) {
let budget = Budget(grossIncome: Int(grossIncomeVal.text!)!)
performSegue(withIdentifier: "GenerateSegue", sender: budget)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let budget = sender as? Budget, let destination = segue.destination as? BudgetVC {
destination.budget = budget
}
}
}
只需使用
self.view.endEditing(true)
在上面定义的操作方法中,您要关闭键盘的位置。
例如
@IBAction func cancelPressed(_ sender: Any) {
self.view.endEditing(true)
performSegue(withIdentifier: "CancelSegue", sender: self)
}
如果你想在 return tap
键盘中使用 return 键盘,请使用此
class ViewController: UIViewController,UITextFieldDelegate
并实现委托方法
func textFieldShouldReturn(_ textField: UITextField) -> Bool { //delegate method
textField.resignFirstResponder()
return true
}
但不要忘记分配 delegate to textfield
yourTextField.delegate = self in `viewDidLoad`
如果你想在外面点击时关闭键盘,只需像这样为你的视图分配一个点击手势
In ViewDidload
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
实现关闭功能
func dismissKeyboard (_ sender: UITapGestureRecognizer) {
self.view.endEditing(true)
}
我目前正在制作一个包含 UITextField 的应用程序,它们一直按预期工作,但是当我最近去测试我的应用程序时,我注意到在我按下 UITextField 后键盘没有消失。在我点击离开或按下 return 之前它就像正常关闭一样,但现在我无法做任何事情让它关闭?
这是我当前的 ViewController 代码:
import UIKit
class CreateNewBudgetVC: UIViewController {
@IBOutlet weak var grossIncomeVal: UITextField!
@IBOutlet weak var locationVal: UITextField!
@IBOutlet weak var federalExptVal: UITextField!
@IBOutlet weak var stateExptVal: UITextField!
@IBOutlet weak var deductionsList: UITableView!
@IBAction func cancelPressed(_ sender: Any) {
performSegue(withIdentifier: "CancelSegue", sender: self)
}
@IBAction func generateBudgetPressed(_ sender: Any) {
let budget = Budget(grossIncome: Int(grossIncomeVal.text!)!)
performSegue(withIdentifier: "GenerateSegue", sender: budget)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let budget = sender as? Budget, let destination = segue.destination as? BudgetVC {
destination.budget = budget
}
}
}
只需使用
self.view.endEditing(true)
在上面定义的操作方法中,您要关闭键盘的位置。
例如
@IBAction func cancelPressed(_ sender: Any) {
self.view.endEditing(true)
performSegue(withIdentifier: "CancelSegue", sender: self)
}
如果你想在 return tap
键盘中使用 return 键盘,请使用此
class ViewController: UIViewController,UITextFieldDelegate
并实现委托方法
func textFieldShouldReturn(_ textField: UITextField) -> Bool { //delegate method
textField.resignFirstResponder()
return true
}
但不要忘记分配 delegate to textfield
yourTextField.delegate = self in `viewDidLoad`
如果你想在外面点击时关闭键盘,只需像这样为你的视图分配一个点击手势
In ViewDidload
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
实现关闭功能
func dismissKeyboard (_ sender: UITapGestureRecognizer) {
self.view.endEditing(true)
}