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



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

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

我弄清楚了,我可以用- (void)keyDown:(NSEvent *)theEvent捕获视图上的键事件。我如何将这个输入传递给控制器/循环?

为了发送keyinput到循环,我使用了带有postNotificationName的NSNotificationCenter。但它似乎又慢又"滞后"。这不可能是正确的做法。

任何提示都会很棒!

使用与NSControl相同的方式来传递事件。或者像iOS的UIControl's addTarget:action:forControlEvents:那样做。

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

相关内容

  • 没有找到相关文章

最新更新