我正在使用UITextfied,而点击textfied键盘出现,但当我按下返回键,键盘没有消失。我使用了以下代码:
func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore.
{
return true;
}
方法resignfirstresponder没有进入函数。
我正在使用UITextfied,而点击textfied键盘出现,但当我按下返回键,键盘没有消失。我使用了以下代码:
func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore.
{
return true;
}
方法resignfirstresponder没有进入函数。
当前回答
你可以把它放在任何地方,但不能放在UIButton中
func TextFieldEndEditing(text fiend name: UITextField!) -> Bool
{
return (false)
}
然后你可以把这段代码放在一个按钮中(也是一个例子):
self.view.endEditing(true)
这对我很有效
其他回答
在你正在使用的视图控制器中:
//suppose you are using the textfield label as this
@IBOutlet weak var emailLabel: UITextField!
@IBOutlet weak var passwordLabel: UITextField!
//then your viewdidload should have the code like this
override func viewDidLoad() {
super.viewDidLoad()
self.emailLabel.delegate = self
self.passwordLabel.delegate = self
}
//then you should implement the func named textFieldShouldReturn
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
// -- then, further if you want to close the keyboard when pressed somewhere else on the screen you can implement the following method too:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true);
}
您可以使用以下函数使应用程序解除键盘
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
下面是Swift 3.0版本对peacetype注释的更新:
textField.addTarget(nil, action:Selector(("firstResponderAction:")), for:.editingDidEndOnExit)
它的返回true部分只告诉文本字段是否允许返回。 你必须手动告诉文本字段解散键盘(或者它的第一个响应器是什么),这是通过resignFirstResponder()来完成的,如下所示:
// Called on 'Return' pressed. Return false to ignore.
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
@RSC
对我来说,Xcode Version 6.2 (6C86e)的关键添加是override func viewDidLoad()
self.input.delegate = self;
我试着用返回键让它工作了几个小时,直到我找到了你的帖子,RSC。谢谢你!
此外,如果你想隐藏键盘,如果你触摸屏幕上的其他地方:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true);
}