IQKeyBoardManager:隐藏特定文本字段的键盘

时间:2017-12-01 05:50:12

标签: ios objective-c iqkeyboardmanager

在我的应用程序中,我有一个表单,用户填写他/她的信息,表单有一些文本字段,其中一个是用户可以选择他们的国家。此textfiled是一个下拉列表,在活动时显示下拉列表(tableview)以及要选择的国家/地区列表。我创建了一个演示项目,重现问题并在此处分享。 在这个演示中,我添加了3个文本字段,当用户使用键盘上的next按钮进入第二个文本文本时,会显示一个tableview。现在我想要实现的是当显示下拉表视图时我的键盘应该隐藏。 我已经花了很长时间试图解决这个问题,但没有成功。 以下是演示项目的链接: https://github.com/tejaskutal/IQKeyboardManagerDemo

任何帮助都非常有用。

P.S:出于某种奇怪的原因,当您在第一个文本文件处于活动状态时单击next时,它会先跳转到第三个文本,然后再次单击next后转到第二个文本字段。但是,这与原始问题无关,所以我把它留在了那里。

3 个答案:

答案 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];

}