1

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

我有两种选择,

选项 1. 使用 tableviewsshouldShowMenuForRowAtIndexPath委托方法

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

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

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

有什么办法可以让这两个东西都正常工作(只有复制选项和在手势上获取 indexPath)。

4

1 回答 1

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];
}

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

于 2013-10-08T07:07:48.613 回答