消息上下文菜单
用户在会话页面长按消息可打开弹窗,根据当前消息类型、会话类型提供不同选项。您可以在自定义菜单选项的显示名称、顺序、以及自行增删菜单选项。
自定义长按消息弹窗的菜单选项
会话页面 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 {
}