2016-09-29 78 views
0

这只是在我正在开发的自定义应用中的Swift 3中开始。 基本上,当我在键盘上键入东西并按下发送, 文字不会消失。它只是呆在那里,就好像你没有按发送(但你做到了)。按下发送后,在键盘中输入的文本并没有消失

我正在使用JSQMessagesViewController,但我已经正确实施我认为它在Swift3之前工作。我还没有看到任何人有过这个问题,至少在Google上看起来好像是这样。

此错误已在iOS默认键盘和SwiftKey上进行测试。

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

我不确定哪些代码与包含相关,请告诉我,我将编辑此文章以包含它。我使用IQKeyboardManagerSwift扩展名,但是当我禁用该扩展时,该错误仍然存​​在。

screenshot of the bug

回答

0

由于您的问题没有代码,这是很难帮助,但是...

确保您的类包含在类声明UITextFieldDelegate,并做到这一点:

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

这会在按下“enter”键时退出键盘。

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

+0

感谢您的评论。好吧,据我了解,resignFirstResponder()是用于隐藏键盘。我不想隐藏键盘,但我想按下发送后键入的文本消失。所以我不知道firstResponder有没有什么可以做这个bug的。 – makthrow

+0

啊,我一接近电脑就会纠正。 – NonCreature0714

1

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

我在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) 
} 
相关问题