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
您必须为您的类实现
NSTEMPUT
协议,然后将调用insertText。查看Aquamacs中的示例,了解如何实现它。您能否显示ExpertKeyEvents:的代码?