UIMenuController为啥不显示呢

首先就是创建

- (void)deleteBtnAction:(UIButton *)deleteBtn
{
    [self becomeFirstResponder];// 用于UIMenuController显示,缺一不可
    UIMenuController *menu = [UIMenuController sharedMenuController];
    UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"撤销" action:@selector(revokeAction)];
    UIMenuItem *item2 = [[UIMenuItem alloc] initWithTitle:@"确认" action:@selector(sureAction)];
    menu.menuItems = @[item1, item2];
    menu.arrowDirection = UIMenuControllerArrowUp;
    [menu setTargetRect:deleteBtn.frame inView:deleteBtn.superview];//  [menu setTargetRect:所点击的按钮Frame inView:按钮的父视图];
    [menu setMenuVisible:YES animated:YES];
}

用于UIMenuController显示,不可缺少的方法

-(BOOL)canBecomeFirstResponder{
    
    return YES;
 }
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(revokeAction)) {
        return YES;
    }
    if (action == @selector(sureAction)) {
        return YES;
    }
    return NO;//隐藏系统默认的菜单项
}

我们可以获取UIMenuController的通知,从而做出相应的操作

//UIMenuControllerWillShowMenuNotification == 将要显示
//UIMenuControllerDidShowMenuNotification  === 已经显示
//UIMenuControllerWillHideMenuNotification  == 将要隐藏
//UIMenuControllerDidHideMenuNotification == 已经隐藏
//UIMenuControllerMenuFrameDidChangeNotification  == 位置大小改变


 //UIMenuController已经隐藏的通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuControllerDidHide) name:UIMenuControllerDidHideMenuNotification object:nil];
//通知回调的方法
- (void)menuControllerDidHide
{
//可以做相应的操作

}

效果图如下

11)效果图.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,888评论 0 15
  • “长夜深深深何许?自尔东西南北中。” 我知,你我自一别后,再无错眼可能,连错眼亦再无可能。 2017年7月23日 ...
    仍未忘与你约定阅读 680评论 6 2
  • 独倚高楼望天际,混天夜里,惟闻雨声落地。杯酒入肠触情起,不语谁会凭阑意。拟把霖雨作玉具①,斩断凡尘,强乐还无趣。青...
    元鸷阅读 280评论 0 2
  • 清晨,走向去学校的小路上,抬头望望天空还是一派朦胧的景象,一棵棵白杨树直插云霄,太阳从东方慢慢升起,红中透紫,紫中...
    陈嘉庆620阅读 249评论 0 0