Swift: UITextField 键盘 return 键不工作

Swift: UITextField keyboard return key is not working

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

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
    }
}

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

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

实施正确的 UITextField 委托方法。

替换

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

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

您必须为 TextField Delegate 使用正确的函数名称

使用这个:

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

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

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

然后您可以删除 textFieldShouldReturn(除非您在这里做一些额外的检查,而不是简单地 return true)。