UIMenuController 不显示的问题

自定义了一个Label,想在长按label时弹出自定义的操作菜单,用到了UIMenuController。

思路很简单,在label中添加长按手势,实现-(BOOL)canBecomeFirstResponder和- (BOOL)canPerformAction:(SEL)action withSender:(id)sender方法:

-(BOOL)canBecomeFirstResponder

{

    return YES;

}

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender

{

    NSLog(@"%@",NSStringFromSelector(action));

    if(action == @selector(cut:) || action == @selector(copy:) || action == @selector(myCut:)|| action == @selector(myPaste:)){

        return YES;

    }

    else

    {

        return NO;

    }

}

但是menu一直没有显示出来。

后来发现我在项目的其它地方设置了某个window  makeKeyAndVisible,所以在-(BOOL)canBecomeFirstResponder中要额外做一些事情才能显示menu:

-(BOOL)canBecomeFirstResponder

{

    UIWindow *window = [[UIApplication sharedApplication].delegate window];

    if ([window isKeyWindow] == NO)

    {

        [window becomeKeyWindow];

        [window makeKeyAndVisible];

    }

    return YES;

}

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

推荐阅读更多精彩内容

  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    小小夕舞阅读 1,524评论 1 1
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,150评论 1 6
  • iOS 上线应用被拒 反馈如下: Dear developer,We have discovered one or...
    coderPoo阅读 11,951评论 2 6
  • 1.小豆子和小癞子哪见过这样的排场,只见道儿两边都是翘首以盼的人,角儿下了马车,立刻响起雷鸣般的掌声,他作了个揖,...
    瓜妈妈阅读 152评论 0 0