我们如何检测用户是不是使用 MessageKit 按下键盘上的“发送/返回”按钮?
Posted
技术标签:
【中文标题】我们如何检测用户是不是使用 MessageKit 按下键盘上的“发送/返回”按钮?【英文标题】:How can we detect if user press the "Send/Return" button on keyboard with MessageKit?我们如何检测用户是否使用 MessageKit 按下键盘上的“发送/返回”按钮? 【发布时间】:2021-12-29 15:57:38 【问题描述】:我希望用户在按下键盘上的“发送”按钮时也能够发送消息。对于 textField,我知道可以通过 delagte 来实现。但是谁能指出我如何在 MessageKit 中做到这一点?我无法在这里找到合适的方法。 提前致谢!
【问题讨论】:
【参考方案1】:详细解释可以在MessageKit
repo 上的example project 中找到。
实现点击发送按钮发送消息的代码sn-p,如下所示:
import UIKit
import MessageKit
import InputBarAccessoryView
class MyViewController: MessagesViewController
override func viewDidLoad()
super.viewDidLoad()
messageInputBar.delegate = self //set the delegate to receive notifications from the `InputBarAccessoryView`
extension MyViewController: InputBarAccessoryViewDelegate
@objc internal func inputBar(_ inputBar: InputBarAccessoryView, didPressSendButtonWith text: String)
processInputBar(messageInputBar)
private func processInputBar(_ inputBar: InputBarAccessoryView)
let components = inputBar.inputTextView.components
inputBar.inputTextView.text = String()
inputBar.invalidatePlugins()
inputBar.inputTextView.resignFirstResponder() // Resign first responder for iPad split view
DispatchQueue.global(qos: .default).async
DispatchQueue.main.async [weak self] in
guard let self = self else return
self.insertMessages(components)
self.messagesCollectionView.scrollToLastItem(animated: true)
private func insertMessages(_ data: [Any])
for component in data
if let string = component as? String
// Create a Message type and add it the the chat messages
// let message = Message(sender: currentUser, messageId: UUID().uuidString, kind: .text(string))
else if let image = component as? UIImage
let item = ImageMediaItem(image: image)
// Create a Message type and add it the the chat messages
// let message = Message(sender: currentUser, messageId: UUID().uuidString, kind: .photo(item))
【讨论】:
以上是关于我们如何检测用户是不是使用 MessageKit 按下键盘上的“发送/返回”按钮?的主要内容,如果未能解决你的问题,请参考以下文章
在 inputBarAccessoryView 中按下发送后如何清除 MessageKit inputBar 中的文本
在 MessageKit 中 configureAvatarView 无法正常工作
MessageKit:将手势识别器添加到 messageCollectionView 和 cellDelegate 不起作用