Macos 如何获取控制权+;NSView键下的选项卡:事件?
它看起来像是按下Control+Tab时不调用Macos 如何获取控制权+;NSView键下的选项卡:事件?,macos,cocoa,Macos,Cocoa,它看起来像是按下Control+Tab时不调用keyDown:。我有一个NSView来呈现自定义小部件,因此我需要捕获自定义行为的Control+选项卡,但是NSApplication sendEvent:。我如何在keyDown:事件中截取此项以获取Control+选项卡?这是一个很长的目标,我将继续回答这个问题,但我有一些东西您可以尝试一下?我曾经遇到过类似的问题,我无法获得ESC密钥进行注册。事实证明,我必须重写NSResponder中名为-cancelOperation的方法。这让我能够
keyDown:
。我有一个NSView
来呈现自定义小部件,因此我需要捕获自定义行为的Control+选项卡,但是NSApplication sendEvent:
。我如何在keyDown:
事件中截取此项以获取Control+选项卡?这是一个很长的目标,我将继续回答这个问题,但我有一些东西您可以尝试一下?我曾经遇到过类似的问题,我无法获得ESC密钥进行注册。事实证明,我必须重写NSResponder
中名为-cancelOperation
的方法。这让我能够识别用户何时按下了ESC键。我想知道TAB是否有类似的解决方案?转到NSResponder.h
并搜索NSStandardKeyBindingMethods
。我知道你要找的可能是-insertTab
?尝试实现它,并抛出一个log语句,看看它是否与标题中的注释有关:>//此类别包含大量用作键绑定命令的方法。NSResponder不实现其中任何一个。NSTextView实现了其中的一个子集(请参见NSTextView.h标题)。您的responder子类可以实现任何有意义的功能。您也可以自己制作,但是如果概念映射,您应该使用这些。如果您的视图是键并使用键绑定,并且用户键入了一个键序列,该序列绑定到您的类中未实现的命令,则可以,默认情况下不会发生任何事情。您是否尝试过performKeyEquivalent:
?在[NSApp NextEventMachingTask:
之后,我(暂时)解决了该问题。但它看起来不是一个通用的解决方案,我还没有尝试Esc键或其他可能有问题的组合键。我将尝试这两种选择,并很快给你反馈。