在我的应用程序中,我有一个表单,用户填写他/她的信息,表单有一些文本字段,其中一个是用户可以选择他们的国家。此textfiled是一个下拉列表,在活动时显示下拉列表(tableview)以及要选择的国家/地区列表。我创建了一个演示项目,重现问题并在此处分享。
在这个演示中,我添加了3个文本字段,当用户使用键盘上的next
按钮进入第二个文本文本时,会显示一个tableview。现在我想要实现的是当显示下拉表视图时我的键盘应该隐藏。
我已经花了很长时间试图解决这个问题,但没有成功。
以下是演示项目的链接:
https://github.com/tejaskutal/IQKeyboardManagerDemo
任何帮助都非常有用。
P.S:出于某种奇怪的原因,当您在第一个文本文件处于活动状态时单击next
时,它会先跳转到第三个文本,然后再次单击next
后转到第二个文本字段。但是,这与原始问题无关,所以我把它留在了那里。
答案 0 :(得分:5)
无需处理不同的委托。在您的viewDidload
中,您可以执行类似的操作,
yourTextField.inputView = UIView.init(frame: CGRect.zero)
yourTextField.inputAccessoryView = UIView.init(frame: CGRect.zero)
因此,对于该文本字段键盘或工具栏将不会出现。
答案 1 :(得分:0)
您可以使用UITextField
代表并实施textFieldShouldBeginEditing
。像
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == theTextFieldToIgnore {
view.endEditing(true)
return false
}
}
至于textField链接,您应该实现textFieldShouldReturn
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == firstOne {
textField.resignFirstResponder()
secondOne.becomeFirstResponder()
}
return true
}
答案 2 :(得分:-1)
返回键操作您想要辞职的文本字段
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.yourTf resignFirstResponder];
}