【发布时间】:2015-11-06 09:49:05
【问题描述】:
当用户按下删除键时,我想从我的 NSOutlineView 中删除一个项目。这样做的唯一方法是覆盖 NSResponder 的 keyUp 方法吗?我希望有更高级别的解决方案。
【问题讨论】:
标签: cocoa
当用户按下删除键时,我想从我的 NSOutlineView 中删除一个项目。这样做的唯一方法是覆盖 NSResponder 的 keyUp 方法吗?我希望有更高级别的解决方案。
【问题讨论】:
标签: cocoa
无需子类化也可以做到这一点。将 NSOutlineView 的 nextResponder(使用 -setNextResponder:)设置为您的控制器。在控制器类中,您可以覆盖-keyDown:(或-keyUp:,然后在控制器类中处理事件。
【讨论】:
从 10.10 开始,您不需要子类化视图来覆盖 keyDown(_:) 或 keyUp(_:)。这是因为NSViewController 继承自NSResponder,现在自动添加到响应者链中。这意味着您可以覆盖视图控制器子类中的方法,这通常更方便。
【讨论】:
我认为在子类中覆盖 -keyDown: 或 -keyUp: 是唯一的方法。
【讨论】: