MessageKit 不显示消息输入栏 Swift 5

2024-02-27

这是控制器层次结构 tabBarController -> 一些控制器和聊天频道控制器。

并且这个聊天频道控制器也是一个导航控制器。当我选择行时,它会推送到 MessageViewController 类的聊天控制器。

我这里有两个问题,一是小问题,一是大问题。

小一点就是头像。

    func avatarSize(for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> CGSize {
        print("delegate method called")
        return .zero
}

我在其中一位代表中将其设置为零,但它仍然显示。而且它也从不打印该语句。

主要的一个是输入栏根本不显示。 我的 pod 文件中已经有 InputBarAccessoryView 和

messageInputBar.delegate = self as InputBarAccessoryViewDelegate

extension ChatViewController: InputBarAccessoryViewDelegate {

    func inputBar(_ inputBar: InputBarAccessoryView, didPressSendButtonWith text: String) {
        print("text")
    }

}

but nothing shows. I also checked the views and I couldn't find it chat view view hierachy


为了解决这个问题,我必须:

import InputBarAccessoryView

所以你不必这样做:

messageInputBar.delegate = self as InputBarAccessoryViewDelegate

并在您的 viewDidLoad() 中设置这些委托(颜色可选)

        super.viewDidLoad()
         guard let userId = Auth.auth().currentUser?.uid else{return}
        Database.fetchUserWithUID(uid: userId) { (user) in
            self.currentLogginUser =  user
        }
        messageInputBar.delegate = self
        maintainPositionOnKeyboardFrameChanged = true
        messageInputBar.inputTextView.tintColor = .yellow
        messageInputBar.sendButton.setTitleColor(.purple, for: .normal)

        messagesCollectionView.messagesDataSource = self
        messagesCollectionView.messagesLayoutDelegate = self
        messagesCollectionView.messagesDisplayDelegate = self
        messagesCollectionView.messageCellDelegate = self

        messageInputBar.leftStackView.alignment = .center
        messageInputBar.setLeftStackViewWidthConstant(to: 50, animated: false)
    getMessages()
    }

那么如果使用实时数据库 - Firebase


    func inputBar(_ inputBar: InputBarAccessoryView, didPressSendButtonWith text: String) {
        guard let recipient = self.recipient else{return}
        guard let uid = Auth.auth().currentUser?.uid else{return}
        let ref = Database.database().reference().child("messages")
        let childRef = ref.childByAutoId()

        let values = ["sender": uid, "text": text, "recipient": recipient.uid, "time": Date().timeIntervalSince1970.description]
        childRef.updateChildValues(values) { (err, ref) in

            if let err = err{
                print(err)
                return
            }

            let userMessageRef = Database.database().reference().child("user-messages").child(uid).child(recipient.uid)

            //add chat id generated from AutoId
            guard let messageId = childRef.key else{return}
            userMessageRef.updateChildValues([messageId: 1])

            let recipientMessageRef = Database.database().reference().child("user-messages").child(recipient.uid).child(uid)
            recipientMessageRef.updateChildValues([messageId:1])
        }
        inputBar.inputTextView.text = ""

    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MessageKit 不显示消息输入栏 Swift 5 的相关文章

  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • 如何在 Firebase Analytics 事件中报告参数

    我用过Fabric with iOS在此之前 在同一分析事件中报告自定义参数非常容易 如下所示 Answers logCustomEvent withName saved border customAttributes image inde
  • ReactNative - 未处理的 JS 异常:SyntaxError

    当我尝试在 iOS 8 上启动 RUN 应用程序时 出现这个奇怪的错误 Unhandled JS Exception SyntaxError仅此而已 不再有更多信息 有any1偶然发现这个问题吗 在 iOs 9 上应用程序运行正常 x代码版
  • Socket.io 400(错误请求)

    我的服务器上有这段代码 var express require express var routes require routes var user require routes user var http require http var
  • iOS 上的 OpenCV - VideoCapture 属性始终返回 1

    我一直在尝试构建一个简单的 OpenCV iOS 应用程序 该应用程序从捆绑包中加载视频并查询其帧数 持续时间等 然后它将尝试从中获取各个帧 不幸的是 当我使用VideoCapture类中 所有属性返回值 1 然后我尝试导航到frame 1
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • 启动深色或浅色模式的图像

    如何为深色模式和浅色模式选 择一组不同的启动图像 我有一个 LaunchImages 集 当应用程序启动时 会显示一个图像 对于浅色模式 这似乎不错 但是如果我尝试在设置为深色模式 iOS 13 的设备上打开我的应用程序 则该图像看起来很糟
  • 对于使用 CCCrypt() 的 AES128,密钥可以长于 128 位吗?

    我正在使用CCCrypt https developer apple com library archive documentation System Conceptual ManPages iPhoneOS man3 CCCrypt 3c
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1
  • iOS:滚动视图仅在键盘出现后才起作用

    我制作了滚动视图 其中有很多文本字段 我添加了更新的 TPKeyBoardAvoidingScrollView 并将其添加到滚动视图的文件所有者中 我在 h 文件中添加了插座 在 m 文件中综合并添加了行 self view addSubv
  • 如何右对齐 UILabel?

    Remark 实施 myLabel textAlignment right does not解决了我的问题 这不是我所要求的 我想要实现的是让标签对齐右对齐 为了更清楚地说明 这就是如何left对齐外观 就是这样justify对齐外观 if
  • 将自定义图像设置为 UIBarButtonItem 但它不显示任何图像

    我想将自定义图像设置为 UIBarButtonItem 但它只显示周围的矩形框并且不显示实际图像 func setupBrowserToolbar let browser UIToolbar frame CGRect x 0 y 20 wi
  • 如何重新定位或移动 Google Maps SDK 上的当前位置按钮?

    如何将 Objective C 中的当前位置按钮移至我的偏好 现在 我已启用它 但底角有东西挡住了它 Thanks 您可以使用 padding 将按钮向上移动 self mapView padding UIEdgeInsets top 0
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)

    这是我第一次在 stackoverflow 上提问 我很绝望 我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中 我将使用static void attribute constructor initialize v
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的

随机推荐