Показывать имя пользователя в чате messagekit? - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь найти способ отображения имени пользователя в контроллере чата MessageKit.Я скопировал MessagesDataSource из примера проекта без удачи.Вот как выглядит мой MessagesDataSource:

extension ChatViewController: MessagesDataSource {

    func currentSender() -> Sender {
        //guard let currentUserID = User.current?.key else {return nil}
        let newSender = Sender(id: (User.current?.key)!, displayName: (User.current?.username)!)
        return newSender
    }

    func numberOfSections(in messagesCollectionView: MessagesCollectionView) -> Int {
        //return 1
        return messages.count
    }

    func messageForItem(at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> MessageType {

        return messages[indexPath.section]
    }

    func cellTopLabelAttributedText(for message: MessageType, at indexPath: IndexPath) -> NSAttributedString? {

        return NSAttributedString(string: MessageKitDateFormatter.shared.string(from: message.sentDate), attributes: [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 10), NSAttributedString.Key.foregroundColor: UIColor.darkGray])
    }

    func messageTopLabelAttributedText(for message: MessageType, at indexPath: IndexPath) -> NSAttributedString? {
        let name = message.sender.displayName
        return NSAttributedString(string: name, attributes: [NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .caption1)])
    }

    func messageBottomLabelAttributedText(for message: MessageType, at indexPath: IndexPath) -> NSAttributedString? {

        let dateString = formatter.string(from: message.sentDate)
        return NSAttributedString(string: dateString, attributes: [NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .caption2)])
    }
}

Если я ставлю точку останова после let name = message.sender.displayName, правильное имя пользователя отображается в выводе консоли.Однако, это все еще не появляется в истории чата.В окне чата по-прежнему отображаются только аватар и сообщение, ничего больше.

Что мне не хватает?

Спасибо

1 Ответ

0 голосов
/ 02 марта 2019

Хотя я не знаю, какую версию MessageKit вы используете, но я уверен, что если вы попробовали это, все должно работать нормально,

func cellTopLabelAttributedText(for message: MessageType, at indexPath: IndexPath) -> NSAttributedString? {
    let name = message.sender.displayName
    return NSAttributedString(
      string: name,
      attributes: [
        .font: UIFont.preferredFont(forTextStyle: .caption1),
        .foregroundColor: UIColor(white: 0.3, alpha: 1)
      ]
    )
  }

Поскольку я не вижу никакойdataSource функция, которая называется messageTopLabelAttributedText

...