通过 return 键和 swift 关闭键盘
Dismiss keyboard through return key with swift
我是 Swift 的初级程序员。我一直在开发待办事项列表应用程序。我试图通过 return 键关闭键盘。我已经尝试了 'self.view.endEditing(true)' 和 'resignFirstResponder()' 方法,但它们都不起作用。这是我的代码:(我正在使用选项卡应用程序)
class SecondViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var text: UITextField!
@IBAction func addItem(sender: AnyObject) {
toDoList.append(text.text)
text.text = ""
self.view.endEditing(true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true) // This works fine here
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true) // This is not working...
return true
}
}
在最后一个函数中,我还尝试使用以下方法:
func textFieldShouldReturn(textField: UITextField) -> Bool {
text.resignFirstResponder() // This is not working...
return true
}
但由于某种原因,没有一个能按我希望的那样工作。当我在 'touchesBegan' 方法中使用它时,它工作正常。你能告诉我我在代码中犯了什么错误吗?谢谢
尝试设置委托。将 didSet 添加到文本出口。像这样。
@IBOutlet var text: UITextField! {
didSet {
text.delegate = self
}
}
resignFirstResponder()
方法是正确的方法。通过在 textFieldShouldReturn()
方法中使用 textField.resignFirstResponder()
,它适用于每个文本字段。
就是这样:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
我是 Swift 的初级程序员。我一直在开发待办事项列表应用程序。我试图通过 return 键关闭键盘。我已经尝试了 'self.view.endEditing(true)' 和 'resignFirstResponder()' 方法,但它们都不起作用。这是我的代码:(我正在使用选项卡应用程序)
class SecondViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var text: UITextField!
@IBAction func addItem(sender: AnyObject) {
toDoList.append(text.text)
text.text = ""
self.view.endEditing(true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true) // This works fine here
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true) // This is not working...
return true
}
}
在最后一个函数中,我还尝试使用以下方法:
func textFieldShouldReturn(textField: UITextField) -> Bool {
text.resignFirstResponder() // This is not working...
return true
}
但由于某种原因,没有一个能按我希望的那样工作。当我在 'touchesBegan' 方法中使用它时,它工作正常。你能告诉我我在代码中犯了什么错误吗?谢谢
尝试设置委托。将 didSet 添加到文本出口。像这样。
@IBOutlet var text: UITextField! {
didSet {
text.delegate = self
}
}
resignFirstResponder()
方法是正确的方法。通过在 textFieldShouldReturn()
方法中使用 textField.resignFirstResponder()
,它适用于每个文本字段。
就是这样:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}