UIMenuController没有显示

时间:2018-11-07 22:13:48

标签: ios objective-c uimenucontroller

我正在尝试让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。任何想法可能是什么问题,或者如何进一步调试?

2 个答案:

答案 0 :(得分:0)

找出问题所在。 事实证明,我还需要在-(BOOL)canPerformAction

中包含以下字段:self.viewController

答案 1 :(得分:0)

我想添加一个问题,指出targetFrame应该是:

const CGRect targetFrame = commentCell.bounds;