Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何获取控制权+;NSView键下的选项卡:事件?_Macos_Cocoa - Fatal编程技术网

Macos 如何获取控制权+;NSView键下的选项卡:事件?

Macos 如何获取控制权+;NSView键下的选项卡:事件?,macos,cocoa,Macos,Cocoa,它看起来像是按下Control+Tab时不调用keyDown:。我有一个NSView来呈现自定义小部件,因此我需要捕获自定义行为的Control+选项卡,但是NSApplication sendEvent:。我如何在keyDown:事件中截取此项以获取Control+选项卡?这是一个很长的目标,我将继续回答这个问题,但我有一些东西您可以尝试一下?我曾经遇到过类似的问题,我无法获得ESC密钥进行注册。事实证明,我必须重写NSResponder中名为-cancelOperation的方法。这让我能够

它看起来像是按下Control+Tab时不调用
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键或其他可能有问题的组合键。我将尝试这两种选择,并很快给你反馈。