【问题标题】:objC sending key events from NSView to another objobjC 将关键事件从 NSView 发送到另一个 obj
【发布时间】:2013-05-23 21:12:13
【问题描述】:

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

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

我发现,我可以使用 - (void)keyDown:(NSEvent *)theEvent 来捕捉视图上的关键事件。如何将此输入传递给控制器​​/循环?

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

任何提示都会很棒!

【问题讨论】:

    标签: objective-c event-handling nsview


    【解决方案1】:

    使用same way NSControl uses to deliver events。或者照做是iOS的UIControl'saddTarget:action:forControlEvents:

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

    【讨论】:

    • 感谢您的回答!我会尝试这种方式,听起来很有希望:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2014-11-05
    • 1970-01-01
    • 2013-04-26
    • 2019-03-23
    相关资源
    最近更新 更多