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

Iphone 自定义UIMenuController以获取tableView索引或从默认UIMenuController中删除不需要的选项,iphone,uigesturerecognizer,uimenucontroller,Iphone,Uigesturerecognizer,Uimenucontroller,我正在应用程序中实现UIMenuController,以从自定义tableviewCell复制文本 我有两个选择 备选案文1。使用TableViewShouldShowMenuForrowatineXpathdelegates方法 备选案文2。使用自定义UIMenuController。为此,我在视图中添加了(长按/双击)手势识别器。(我不想将didSelect用于其他用途) 我真正想做的是——当我(长按/双击)在tableView中时,只显示复制选项,并捕获该tableView的indexPa

我正在应用程序中实现
UIMenuController
,以从自定义tableviewCell复制文本

我有两个选择

备选案文1。使用TableView
ShouldShowMenuForrowatineXpath
delegates方法

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

我真正想做的是——当我(长按/双击)在tableView中时,只显示复制选项,并捕获该tableView的
indexPath

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

有什么方法可以让这两件事都起作用吗(只有复制选项和在手势上获取indexPath)。

选项2可以。 您可以从long-press方法获得indexpath

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];
}
记住类中的indexpath并从中获得访问权限。

Dupe of