自定义 UITableView 的 UIKeyCommands 无法识别

Posted

技术标签:

【中文标题】自定义 UITableView 的 UIKeyCommands 无法识别【英文标题】:UIKeyCommands of custom UITableView not recognized 【发布时间】:2015-12-28 02:35:09 【问题描述】:

我有一个UITableView 子类,它实现了keyCommands 属性,其中提供了几个UIKeyCommands。这个UITableView是View Controller中主视图的子视图。

当我运行应用并按住 Command 以预览可用的键盘快捷键时,这些键盘命令不会显示。

我已经在另一个项目中测试了这个自定义的UITableView 子类,并且在这个项目的一个单独的地方。在这两种情况下,表格视图都属于UITableViewController 子类,而不是我在这种情况下使用的普通UIViewController 子类。

我尝试在表格视图上调用becomeFirstResponder,但这没有任何区别。

为什么无法识别表格视图的按键命令,我该如何解决?

【问题讨论】:

【参考方案1】:

显然(我可能记错了,但它是这样出现的),UITableViewControllers 中的表格视图有canBecomeFirstResponder,返回true,而UITableView 的默认值是false

要解决这个问题,只需将此方法添加到子类:

override func canBecomeFirstResponder() -> Bool 
    return true

【讨论】:

以上是关于自定义 UITableView 的 UIKeyCommands 无法识别的主要内容,如果未能解决你的问题,请参考以下文章

自定义视图不适合 UItableview 中的标题

如何自定义uitableview

iOS 自定义 UITableView 单元格

自定义 UITableView 的意外行为

UITableView - 自定义 UITableViewCell 中的自定义 selectedBackgroundView 选择时隐藏单元格分隔符

支持iOS11UITableView左滑删除自定义 - 实现多选项并使用自定义图片