Objective c 如何处理主窗口';什么是没有痛苦的按键事件?

Objective c 如何处理主窗口';什么是没有痛苦的按键事件?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我想处理主窗口的顶级关键事件。我对该如何做的理解正确吗 我可以创建一个NSWindowController子类并覆盖其keyDown事件(因为控制器是响应器链的一部分),并将主NIB的文件所有者设置为所述控制器类。现在,由于主窗口是在NSApplicationMain的内部创建的,并且窗口所有者被无条件地设置为NSApplication,因此我必须放弃这一点,使用initWithWindowNibName:以编程方式创建主窗口,编写一些样板来设置其委托,显示窗口,等等 另一种可能是子类化NSWi

我想处理主窗口的顶级关键事件。我对该如何做的理解正确吗

  • 我可以创建一个
    NSWindowController
    子类并覆盖其
    keyDown
    事件(因为控制器是响应器链的一部分),并将主NIB的文件所有者设置为所述控制器类。现在,由于主窗口是在
    NSApplicationMain
    的内部创建的,并且窗口所有者被无条件地设置为
    NSApplication
    ,因此我必须放弃这一点,使用
    initWithWindowNibName:
    以编程方式创建主窗口,编写一些样板来设置其委托,显示窗口,等等

  • 另一种可能是子类化
    NSWindow
    类,覆盖它的
    keyDown
    事件,并将主窗口的类设置为它,但这也带来了许多它自己的问题:现在我需要窗口内的所有插座来实际处理事件,它就变成了自己的控制器

  • 在这一点上,我正致力于解决一个看似简单的问题。我怀疑这可能是因为我在可可方面缺乏经验,但有没有更好的、合适的方法呢™ 怎么做?我觉得我真的不应该表演这些杂技

    附言


    这也适用于
    performkeyeequivalent
    ,据我所知,27.5K的
    keyDown

    不仅可以让您成为obj-c的新手,而且您的软件开发肯定会派上用场。其实我不明白你的问题,你有什么要求。如果没有,也请阅读。@AnoopVaidya我只想能够响应主窗口级别发送的按键事件(以处理自定义快捷方式)。是的,我读过文件,我了解了概念,但它并没有解决我遇到的小“管道”问题。所以给你。创建一个菜单并指定键盘快捷键。就是这样。@AnoopVaidya对不起,当我说快捷键时,我的意思是任意按键。例如,
    /
    是一种快捷方式(焦点搜索栏)。我还必须处理箭头等。另外,如果没有一个菜单来映射我想映射的每个键,那也很好。你可以有一个无菜单(隐藏)的快捷方式。我希望这就足够了。