我有Mac的SpriteKit游戏。它在菜单中与普通MAC应用程序一样包括NSmenuitems。现在是
- 如果我用鼠标从菜单中选择一个动作,则SpriteKit游戏会立即开始执行,并且错过了一些随后的动画。
- 如果我使用键盘快捷键选择相同的操作,则游戏立即开始执行,但由于没有延迟从菜单动画转换为游戏动画,因此没有任何动画。
是否有某种方法可以识别菜单项发送的IBACTION是由键盘等效触发还是由鼠标触发?如果使用鼠标,我想在游戏动画中添加一个启动延迟,而不是键等效的延迟。
可以通过读取NSApp.currentEvent.type
。
有关详细信息,请参见nsapp.currentevent和nsevent.type。