【问题标题】:Capturing undo/redo key events on NSTableView在 NSTableView 上捕获撤消/重做关键事件
【发布时间】:2023-08-15 18:21:01
【问题描述】:

我需要在 NSTableView 中捕获撤消/重做键命令并将其转发到托管对象上下文的撤消管理器。我尝试过覆盖-keyDown,但这很难导航。我真的需要一个国际化的解决方案来解决这个问题,而不是围绕使用命令键修饰符掩码检查“z”键。

有没有一种方法可以设置我的 tableview 来查找标准的“撤消”键绑定?有什么想法吗?

【问题讨论】:

    标签: cocoa events macos nstableview undo


    【解决方案1】:

    在包含 NSTableView 的窗口的委托中实现 windowWillReturnUndoManager。然后在那里返回您的对象上下文的撤消管理器。然后您的表格视图将能够接收这些事件。

    [NSWindowDelegate windowWillReturnUndoManager:]
    

    【讨论】:

      【解决方案2】:

      您通常在 Cocoa 应用程序中使用 NSUndoManager 来处理 Undo/Redo 事件。更多信息请参考http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUndoManager_Class/Reference/Reference.html

      【讨论】:

      • 是的。我需要获取 managedObjectcontext 的撤消管理器的撤消键命令。