objC将关键事件从NSView发送到另一个obj

时间:2013-05-23 21:12:14

标签: objective-c event-handling nsview

我对objC和一般的游戏编程都很陌生,所以请原谅我,如果这是你们很多人可以做的问题[self facepalm];

我正在尝试将游戏循环(NSObject)设置为控制器。还有一个NSOpenGLView通过Interface Builder(MainMenu.xib)与Window连接。 循环应该处理所有键盘输入并管理在视图上绘制的内容。

我想通过 - (void)keyDown:(NSEvent *)theEvent可以捕获视图上的关键事件。我怎么能把这个输入传递给控制器​​/循环?

为了将keyinput发送到循环,我使用带有postNotificationName的NSNotificationCenter。但它似乎很慢而且“迟滞”。这不是正确的做法。

任何提示都会很棒!

1 个答案:

答案 0 :(得分:0)

使用same way NSControl uses to deliver events。或者这样做就是iOS的UIControl's addTarget:action:forControlEvents:

我们的想法是将一些对象注册为此类事件的“侦听器”(目标),以及触发事件时应调用的方法(操作)。您可以通过为视图声明一些协议并使需要接收事件的每个类符合它来使事情变得简单。