我正在我的应用中实现UIMenuController
来复制自定义tableviewCell中的文本。
我有两个选择,
选项1.使用tableviews shouldShowMenuForRowAtIndexPath
委托方法
选项2.使用自定义UIMenuController
。我在其视图中添加了(长按/双击)手势识别器。(我不想将didSelect用于其他用途)
我真正想要做的是 - 在tableView&中我(长按/双击)时显示仅复制选项捕获该tableView的indexPath
。
选项1的问题是,它默认提供三个选项,即剪切,复制,粘贴。 选项2的问题是,我无法得到表的索引,因为我的长按Gesture识别器方法没有indexPath的信息。
有什么方法可以让两件事都有效(只有复制选项和手势上的indexPath)。
答案 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];
}
记住班级中的索引路径并从中获取访问权限。