【问题标题】:after pressing send, typed text in keyboard is not disappearing按下发送后,键盘中输入的文本不会消失
【发布时间】:2017-02-08 08:14:13
【问题描述】:

这只是在我正在开发的自定义应用程序中的 Swift 3 中开始的。 基本上,当我在键盘上输入内容并按下发送时, 文字不会消失。它只是停留在那里,就好像您没有按发送一样(但您按了发送)。

我正在使用 JSQMessagesViewController,但我认为它已正确实现,因为它在 Swift3 之前就可以工作。我从来没有见过其他人有这个问题,至少在谷歌搜索时看起来是这样。

在 iOS 默认键盘和 SwiftKey 上都测试了此错误。

键盘在其他聊天应用程序上正常工作,例如环聊或 snapchat 等。所以我认为这是我的应用程序所特有的。

我不确定要包含哪些代码,请告诉我,我会编辑这篇文章以包含它。我正在使用IQKeyboardManagerSwift 扩展,但当我禁用它时,错误仍然存​​在。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    由于您的问题没有代码,因此很难提供帮助,但是...

    确保您的类在类声明中包含UITextFieldDelegate,然后执行以下操作:

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

    这将在点击“回车”时退出键盘。

    您还可以在其中添加一个调用 textField.resignFirstResponder() 的 IBAction。

    【讨论】:

    • 感谢您的评论。好吧,据我了解, resignFirstResponder() 用于隐藏键盘。不过我不想隐藏键盘,我希望我输入的文本在按下发送后消失。所以我不知道 firstResponder 是否与这个 bug 有任何关系。
    • 啊,我一靠近电脑就改正。
    【解决方案2】:

    好的,我修好了。不知道为什么它之前工作但随机停止工作

    我在 JSQMessagesViewController 中添加了一个 self.finishSendingMessage 函数并修复了它。

        override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) {
    
        createChatsMessagesFor(self.chatID!, senderId: senderId, text: text)
        finishSendingMessage(animated: true)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2018-05-30
      相关资源
      最近更新 更多