【问题标题】:Whats the appropriate way to react to the delete key in an NSOutlineView什么是对 NSOutlineView 中的删除键做出反应的适当方式
【发布时间】:2015-11-06 09:49:05
【问题描述】:

当用户按下删除键时,我想从我的 NSOutlineView 中删除一个项目。这样做的唯一方法是覆盖 NSResponder 的 keyUp 方法吗?我希望有更高级别的解决方案。

【问题讨论】:

    标签: cocoa


    【解决方案1】:

    无需子类化也可以做到这一点。将 NSOutlineView 的 nextResponder(使用 -setNextResponder:)设置为您的控制器。在控制器类中,您可以覆盖-keyDown:(或-keyUp:,然后在控制器类中处理事件。

    【讨论】:

    【解决方案2】:

    从 10.10 开始,您不需要子类化视图来覆盖 keyDown(_:)keyUp(_:)。这是因为NSViewController 继承自NSResponder,现在自动添加到响应者链中。这意味着您可以覆盖视图控制器子类中的方法,这通常更方便。

    【讨论】:

      【解决方案3】:

      我认为在子类中覆盖 -keyDown:-keyUp: 是唯一的方法。

      【讨论】:

      • ...请注意,这些不是等效的;删除应在按下键时触发,而不是按下键。
      • 从 10.10 开始,这已经改变,因为视图控制器现在自动添加到响应者链中。
      猜你喜欢
      • 2017-11-08
      • 1970-01-01
      • 2021-09-26
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      相关资源
      最近更新 更多