Swift:UITextField键盘返回键不起作用

时间:2018-02-21 07:13:55

标签: ios iphone swift uitextfield

下面是我按下返回键隐藏键盘的代码,但它不起作用。

class AddHall: UIViewController,UITextFieldDelegate {

    @IBOutlet weak var hallname: UITextField!

     override func viewDidLoad() {
         super.viewDidLoad()

         hallname.delegate = self
    }


    func textFieldShouldReturn(hallname : UITextField!) -> Bool { 
        hallname.resignFirstResponder()
        return true
    }
}

4 个答案:

答案 0 :(得分:1)

实现正确的UITextField Delegate方法。

<强>替换

func textFieldShouldReturn(hallname : UITextField!) -> Bool { 
    hallname.resignFirstResponder()
    return true
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
     textField.resignFirstResponder()
     return true
}

答案 1 :(得分:1)

委托方法textFieldShouldReturn用于指定是否允许文本字段失去焦点 - 在 UITextField即将失去焦点之前,它只会被调用。你应该只对她进行一些检查,但不要忽视任何事情。

您寻求的是对返回键做出反应,然后关闭键盘。这是通过连接DidEndOnExit操作来完成的(请注意:还有许多其他具有相似名称的事件,您必须完全使用此操作),然后辞职第一响应者。

DidEndOnExit

然后您可以删除textFieldShouldReturn(除非您在此处执行其他检查,而不是简单地返回true)。

答案 2 :(得分:0)

像这样更改你的代码。您没有使用正确的委托方法。

func textFieldShouldReturn(textField : UITextField!) -> Bool { 
    textField.resignFirstResponder()
    return true
}

答案 3 :(得分:0)

您必须为TextField Delegate

使用正确的函数名称

使用此:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
     return true
}