自定义UIMenuController以获取tableView索引或从默认的UiMenuController中删除不需要的选项

时间:2013-04-17 12:36:59

标签: iphone uigesturerecognizer uimenucontroller

我正在我的应用中实现UIMenuController来复制自定义tableviewCell中的文本。

我有两个选择,

选项1.使用tableviews shouldShowMenuForRowAtIndexPath委托方法

选项2.使用自定义UIMenuController。我在其视图中添加了(长按/双击)手势识别器。(我不想将didSelect用于其他用途)

我真正想要做的是 - 在tableView&中我(长按/双击)时显示复制选项捕获该tableView的indexPath

选项1的问题是,它默认提供三个选项,即剪切,复制,粘贴。 选项2的问题是,我无法得到表的索引,因为我的长按Gesture识别器方法没有indexPath的信息。

有什么方法可以让两件事都有效(只有复制选项和手势上的indexPath)。

1 个答案:

答案 0 :(得分:0)

选项2可行。 您可以通过长按方法获取索引路径。

if (recognizer.state == UIGestureRecognizerStateBegan) {
    UITableView *cell = (UITableView *)recognizer.view;
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setMenuItems:[NSArray arrayWithObjects:flag, approve, nil]];
    [menu setTargetRect:cell.frame inView:cell.superview];
    [menu setMenuVisible:YES animated:YES];
}

记住班级中的索引路径并从中获取访问权限。