UITableView从不在其委托上调用tableView:shouldShowMenuForRowAtIndexPath :.

时间:2013-04-25 13:47:20

标签: ios objective-c uimenucontroller uitableview

我正在创建并显示UITableView的实例。委托(实际上是我UITableView的子类)从未收到以下任何选择器:

  • tableView:shouldShowMenuForRowAtIndexPath:
  • tableView:canPerformAction:forRowAtIndexPath:withSender:
  • tableView:performAction:forRowAtIndexPath:withSender:

即使documentation明确指出,例如,在tableView:shouldShowMenuForRowAtIndexPath:

的讨论中
  

如果用户点击表格视图中的某一行,则此方法   (如果已实现)首先被调用。如果编辑菜单,则返回NO   不应该显示 - 例如,与行对应的单元格   包含不应复制或粘贴的内容。

其他教程还记录了此快捷方式,以便在表格视图中显示UIMenuController。为什么这不像记录的那样工作?

1 个答案:

答案 0 :(得分:7)

虽然目前尚未记录(我提交文档更新,但谁知道何时/是否会发布),UITableViewDelegate方法:

  • 的tableView:shouldShowMenuForRowAtIndexPath:
  • 的tableView:canPerformAction:forRowAtIndexPath:withSender:
  • 的tableView:的performAction:forRowAtIndexPath:withSender:
只有在您的表视图实例由UITableViewController实例管理时才会调用

。独立表视图不会调用这些方法。

如果您的表格视图未连接到表格视图控制器,那么您需要在每个表格视图单元格中手动显示UIMenuController从长按侦听器(以复制标准系统功能)。 / p>