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
Cocoa 如何让响应器链中的对象处理`insertText:`消息?_Cocoa_Events - Fatal编程技术网

Cocoa 如何让响应器链中的对象处理`insertText:`消息?

Cocoa 如何让响应器链中的对象处理`insertText:`消息?,cocoa,events,Cocoa,Events,我有一个NSView子类,它实现了acceptsFirstResponder,resignFirstResponder和becomeFirstResponder。它还实现了以下方法: -(void)keyDown:(NSEvent*)事件 { [自解释键事件:[NSArray arrayWithObject:event]]; } 我处理appController类中interpertKeyEvent:发送的消息(appController是NSWindow委托,因此是响应者链的一部分) 这种

我有一个
NSView
子类,它实现了
acceptsFirstResponder
resignFirstResponder
becomeFirstResponder
。它还实现了以下方法:


-(void)keyDown:(NSEvent*)事件
{
[自解释键事件:[NSArray arrayWithObject:event]]; }

我处理appController类中
interpertKeyEvent:
发送的消息(appController是
NSWindow
委托,因此是响应者链的一部分)

这种方法适用于
interpertKeyEvent:
生成的大多数消息,例如
insertNewline:
moveUp:
moveDown:
,但不适用于
insertText:


如何让响应程序链中的对象处理
insertText:
消息?

根据NSResponder的标准实现文档:

nsrresponder实现只是将此消息传递给下一个响应程序,如果没有下一个响应程序,则会发出嘟嘟声

我想到了两种可能性:要么您的视图不在响应程序链中预期的位置,要么您的方法签名与预期的不匹配:

  • (无效)insertText:(id)aString
您如何实现acceptsFirstResponder、辞职FirstResponder和成为FirstResponder

您的应用程序是使用NSWindowController还是基于文档的应用程序

有关事件处理体系结构的更多文档:


您必须为您的类实现
NSTEMPUT
协议,然后将调用insertText。查看Aquamacs中的示例,了解如何实现它。

您能否显示ExpertKeyEvents:的代码?