使 NSView 成为所有 Undo/Redo 操作的第一响应者的正确方法,而不考虑 active/focused view/control

Correct way to make an NSView the firstresponder to all Undo/Redo actions irrespective of active/focused view/control

我有一个基于标准文档的应用程序,其主要 window 有两个 NSView。

  1. 是否可以让 NSView1 成为 Undo/Redo 操作的第一响应者,即使 NSView2 是焦点视图。
  2. 是否可以将编辑菜单项的上下文永久设置为 NSView1 的上下文。例如。如果 NSView2 中的 NSTextField 有焦点并且编辑菜单项被打开,默认情况下它在 NSTexfield 的当前状态的上下文中打开,这可以被覆盖吗?

如果两者皆有可能,如何实现?

C.

好的,找到解决方案了,NSResponder 中有一个相当方便的方法,叫做validateProposedFirstResponder。稍加操作,应该可以达到预期的效果。