【问题标题】:IQKeyBoardManager : Hide keyboard for a specific textfieldIQKeyBoardManager :隐藏特定文本字段的键盘
【发布时间】:2017-12-01 05:50:12
【问题描述】:

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

非常感谢任何帮助。

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

【问题讨论】:

    标签: ios objective-c iqkeyboardmanager


    【解决方案1】:

    无需处理不同的委托。在您的viewDidload 中,您可以执行以下操作,

     yourTextField.inputView = UIView.init(frame: CGRect.zero)
     yourTextField.inputAccessoryView = UIView.init(frame: CGRect.zero)
    

    因此,不会出现该文本字段的键盘或工具栏。

    【讨论】:

      【解决方案2】:

      您可以使用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
          }
      

      【讨论】:

      • 如果我在textFieldShouldBeginEditing 中添加return false,则任何文本字段都不会显示关键字,对吧?
      • @TejasK 确实是的。你应该在你的代码中使用检查,我也更新了我的代码。 :)
      • 嗨,我试过这个,但是由于前面的文本字段,这不会关闭显示的键盘。请求您检查 GitHub 上的代码。
      • 好的,更新了代码。我只是做了一些不正确的假设。 view.endEditing(true) 将关闭任何以前打开的键盘。
      • No [self.view endEditing:YES] 没有关闭键盘,这就是我的问题:(
      【解决方案3】:

      返回键 Action 你想退出哪个文本字段

      - (BOOL)textFieldShouldReturn:(UITextField *)textField {
              [self.yourTf resignFirstResponder];
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-18
        • 2011-01-19
        • 1970-01-01
        • 2018-12-22
        • 2021-05-07
        • 2021-05-20
        • 2023-03-10
        • 1970-01-01
        相关资源
        最近更新 更多