我正在使用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没有进入函数。
当前回答
当用户点击文本键盘上的Done按钮时,将生成Did End on Exit事件;那时,我们需要告诉文本字段放弃控制,这样键盘就会消失。为了做到这一点,我们需要向控制器类添加一个动作方法。 选择ViewController.swift添加以下动作方法:
@IBAction func textFieldDoneEditing(sender: UITextField) {
sender.resignFirstResponder()}
选择主要。项目导航器中的故事板,并调出连接检查器。从Did End On Exit旁边的圆圈拖动到故事板中的黄色视图控制器图标,然后松开。将出现一个小弹出菜单,其中包含我们刚刚添加的单个操作的名称。单击textFieldDoneEditing动作来选择它,就是这样。
其他回答
斯威夫特
使用UITextFieldDelegate的可选函数。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.endEditing(false)
}
False表示可以要求该字段辞职。真力辞职。
所有在一个隐藏键盘和移动键盘打开视图:Swift 5
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(taped))
view.addGestureRecognizer(tap)
NotificationCenter.default.addObserver(self, selector: #selector(KeyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(KeyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillHideNotification, object: nil)
}
@objc func taped(){
self.view.endEditing(true)
}
@objc func KeyboardWillShow(sender: NSNotification){
let keyboardSize : CGSize = ((sender.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size)!
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
@objc func KeyboardWillHide(sender : NSNotification){
let keyboardSize : CGSize = ((sender.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size)!
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
}
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
确保你的textField委托被设置为视图控制器,从你正在写你的textField相关的代码。
self.textField.delegate = self
为了获得自动键盘撤销,我将以下代码放在自定义文本字段类的一个方法中:
textField.addTarget(nil, action:"firstResponderAction:", forControlEvents:.EditingDidEndOnExit)
替换你的出口名称为textField。
斯威夫特3
将下面的代码添加到你的VC中
//hide keyboard when user tapps on return key on the keyboard
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true);
return false;
}
对我有用