【问题标题】:UIMenuController is not showingUIMenuController 未显示
【发布时间】:2019-04-11 10:13:45
【问题描述】:

我正在尝试让 UIMenuController 显示菜单。

这是我到目前为止的代码:

commentCell.userInteractionEnabled = YES;
[commentCell becomeFirstResponder];
UIMenuController *menu = [UIMenuController sharedMenuController];
if (menu.menuVisible) {
    return;
}
menu.menuItems = @[[[UIMenuItem alloc] initWithTitle:@"copy" action:@selector(log)], [[UIMenuItem alloc] initWithTitle:@"report" action:@selector(log)]];
const CGRect targetFrame = commentCell.frame;
const CGRect convertedFrame = [commentCell convertRect:targetFrame toView:self.viewController.view];
[menu setTargetRect:convertedFrame inView:self.viewController.view];
[menu update];
[menu setMenuVisible:YES animated:YES];

很遗憾,我的菜单似乎没有显示。我尝试遵循以下指南:UIMenuController not showing up,但我已经尝试了所有建议,包括使我的视图实现canBecomeFirstResponder 并将userInteractionEnabled 设置为YES。任何想法可能是什么问题或我如何进一步调试?

【问题讨论】:

    标签: ios objective-c uimenucontroller


    【解决方案1】:

    找出问题所在。 事实证明,我还需要包含以下字段:-(BOOL)canPerformAction in self.viewController

    【讨论】:

      【解决方案2】:

      我想补充一个targetFrame应该是的问题:

      const CGRect targetFrame = commentCell.bounds;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多