当用户按下删除键时,我想从我的NSOutlineView中删除一个项目。唯一的方法是覆盖NSResponder的keyUp方法吗?我希望有更高级别的解决方案。
答案 0 :(得分:5)
没有子类化就可以做到这一点。将NSOutlineView的nextResponder
(使用-setNextResponder:
)设置为您的控制器。在控制器类中,您可以覆盖-keyDown:
(或-keyUp:
,然后在控制器类中处理该事件。
答案 1 :(得分:1)
从10.10开始,您不需要对视图进行子类化以覆盖keyDown(_:)
或keyUp(_:)
。这是因为NSViewController
继承自NSResponder
,现在自动添加到响应者链中。这意味着您可以覆盖视图控制器子类中的方法,这通常更方便。
答案 2 :(得分:0)
我认为在子类中覆盖-keyDown:
或-keyUp:
是唯一的方法。