首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIMenuController未显示

UIMenuController未显示
EN

Stack Overflow用户
提问于 2010-06-25 02:38:55
回答 7查看 24.6K关注 0票数 66

我正在尝试创建一个自定义的UIMenuController并将其显示在我的视图中。下面是我的代码:

代码语言:javascript
复制
UIMenuController *menuController = [UIMenuController sharedMenuController];
    UIMenuItem *listMenuItem = [[UIMenuItem alloc] initWithTitle:@"List" action:@selector(addList:)];

    [menuController setMenuItems:[NSArray arrayWithObject:listMenuItem]];
    [menuController setTargetRect:CGRectMake(50.0, 50.0, 0, 0) inView:self.view];
    [menuController setMenuVisible:YES animated:YES];

    [listMenuItem release];

没有错误或异常,但菜单控制器就是不显示。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-09 12:32:30

你需要做三件事:

controller.

  • Your YES).

  • Optionally,
  1. 你需要在视图或视图上调用-becomeFirstResponder来实现-canBecomeFirstResponder (返回你的视图或视图控制器可以实现-canPerformAction:action withSender:sender来单独显示/隐藏菜单项。
票数 176
EN

Stack Overflow用户

发布于 2014-05-24 06:37:20

答案提到了三件事,但为了挑剔,有六件事:

  1. 菜单处理程序必须是UIView。如果不是,则返回失败。菜单处理程序必须具有userInteractionEnabled = YES
  2. The菜单处理程序必须位于视图层次结构中,并且其-window属性必须与inView:中视图的窗口相同argument.
  3. You需要实现-canBecomeFirstResponder并返回[handler becomeFirstResponder]需要调用[menu setTargetRect:inView:],否则后者将失败。
  4. 您需要调用[menu setTargetRect:inView] (至少调用一次)和[handler becomeFirstResponder]

特别是上面的1-3点让我很感兴趣。起初我想要一个自定义菜单处理程序类,它是一个UIResponder,这会导致-becomeFirstResponder返回NO;然后它是一个UIView,失败了,然后我尝试使它成为一个可以工作的UIButton,但这仅仅是因为对于按钮,userInteractionEnabled默认为YES,对于UIViews,它默认为NO

票数 23
EN

Stack Overflow用户

发布于 2010-12-27 16:51:44

仅当视图是first responder时,UIMenuController才在任何视图上可见

- (BOOL)canPerformAction方法返回YES

因此,如果您的菜单控制器要在单击按钮时显示,则按钮操作中的第一行应该是[self becomeFirstResponder]。注意:这里self是显示菜单的视图。

如果要在长按手势上显示菜单,则在写入之前将longPressGesture添加到UIView和长按事件中

代码语言:javascript
复制
[menuController setTargetRect:CGRectMake(50.0, 50.0, 0, 0) inView:self.view];
[menuController setMenuVisible:YES animated:YES];

写入[self becomeFirstResponder];

然后按照OZ提到的步骤操作。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3112925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档