点击消息泡泡时如何采取行动

时间:2015-09-06 17:05:22

标签: ios swift jsqmessagesviewcontroller

当用户点击消息气泡时,我一直试图弄清楚如何插入处理程序以采取行动。我在自述文件中找到了关于"定制您的细胞的部分"并尝试了几种不同的方法,但到目前为止还没有运气。以下是我尝试过的内容:

已实施:

- (void)collectionView:(JSQMessagesCollectionView *)collectionView didTapMessageBubbleAtIndexPath:(NSIndexPath *)indexPath

在我的viewController中:

override func collectionView(collectionView: JSQMessagesCollectionView, didTapMessageBubbleAtIndexPath indexPath: NSIndexPath!) {
    super.collectionView(collectionView, didTapMessageBubbleAtIndexPath: indexPath)
    println("They tapped!")
}

然而,由于某种原因,这根本不会被调用。

我尝试过的另一件事就是实施:

- (UICollectionViewCell *)collectionView:(JSQMessagesCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

在我的视图控制器中:

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell

    let myDelegate = MyJSQMessagesCollectionViewCellDelegate(origDelegate: cell.delegate!)
    cell.delegate = myDelegate

    return cell;
}

这会被调用,但我的代理中的方法不会被调用。

那么,有关如何正确获取JSQMessagesCollectionViewCellDelegate以便调用它的任何建议?或者我最初尝试以适当的方式覆盖didTapMessageBubbleAtIndexPath方法?

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:2)

好的,我明白了。我试图插入自己的委托实际上是在破坏事物(除了没有完成我试图做的事情)。一旦我删除了我的“cellForItemAtIndexPath”方法,我的“didTapMessageBubbleAtIndexPath”开始触发。