跳到主要内容

消息上下文菜单

用户在会话页面长按消息可打开弹窗,根据当前消息类型、会话类型提供不同选项。您可以在自定义菜单选项的显示名称、顺序、以及自行增删菜单选项。

自定义长按消息弹窗的菜单选项

会话页面 RCChatViewController 长按消息将要弹出菜单时,会调用下面方法,可以重写方法实现菜单自定义:

- (NSArray<RCMessageEditBarItem *> *)willDisplayEditMenu:(NSArray<RCMessageEditBarItem *> *)items forMessageModel:(RCMessageModel *)messageModel {
-
- ///通过 super 获取默认的菜单选项
NSMutableArray *tempList = [super willDisplayEditMenu:items forMessageModel:messageModel].mutableCopy;

/// delete
for (RCMessageEditBarItem *item in tempList) {
if (item.tag == RCMessageEditBarItemDelete) {
[tempList removeObject:item];
}
}

/// add
RCMessageEditBarItem *barItem = [RCMessageEditBarItem itemWithTitle:@"Custom option" image:[UIImage imageNamed:@"voice"] action:^(RCBarItem *item){
/// click action
}];
barItem.tag = 2003;
[tempList addObject:barItem];

return tempList.copy;
}

默认的菜单选项可以根据 tag 来区分,参考如下:

功能tag
已读RCMessageEditBarItemRead
回复RCMessageEditBarItemReply
转发RCMessageEditBarItemForward
复制RCMessageEditBarItemCopy
删除RCMessageEditBarItemDelete
选择RCMessageEditBarItemSelect

自定义长按事件

可以重写下面方法实现自定义长按事件

- (void)tableViewCell:(UITableViewCell *)cell didLongPressMessage:(RCMessageModel *)messageModel {

}