网上有很多这个UIMenuController的教程,以及很多可以替代这个显示的第三方,例如:DXPopover等
由于项目UI更改需要,改为系统的UIMenuController显示。
项目中cell有很多个,但是有一个基类的自定义cell,controller是个聊天室类型的,cell长按后需要出现菜单,点击menu,实现方法放在controller里。
下面就讲下要做的事:
1.准备:cell里会有delegate,里面有单击、长按的方法,具体实现通过代理在controller里实现。
2.在controller里,来到cell长按跳转过的方法里:
设置UIMenuController(关于这个的知识可以去百度,这里只说如何使用)
-(void)longPressMenuViewWithCell:(BaseTableViewCell *)cell atPoint:(CGPoint)position
{
UIView *keyView = [UIApplication sharedApplication].keyWindow.rootViewController.view;
//为使其显示menuController 需要成为第一响应
[cell becomeFirstResponder];
UIMenuController *menu = [UIMenuController sharedMenuController];
menu.menuItems = @[
[[UIMenuItem alloc] initWithTitle:@"LIAOTIAN" action:@selector(onTapMenuChatButton)], //@""里面可以国际化
[[UIMenuItem alloc] initWithTitle:@"SHANCHU" action:@selector(onTapMenuDeleteButton)]
];
C