【已解决】CocoStudio UI如何响应按键?

使用CocoSutidio设计UI,如何响应按键呢?UILayer没有注册响应按键事件的函数啊????
在自定义的场景类的init方法中加载ui json:
UILayer* baseUILayer = UILayer::create();
baseUILayer->scheduleUpdate();
this->addChild(baseUILayer, 0);

// 获取背景UI
m_pBaseUIWidget = CCUIHELPER->createWidgetFromJsonFile(“BackGroundUI.json”);
baseUILayer->addWidget(m_pBaseUIWidget);

如何为baseUILayer添加按键响应呢?

你需要在编辑器中勾选“交互”选项!

virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

这些都是UILayer的事件

感谢版主大人回复。但是你给出的都是触摸事件的响应方法。我是指如何响应android下的按键事件呢?比如菜单键,返回键。谢谢

CCLayer的虚拟方法可以响应,
setKeypadEnabled(true);
实现以下虚函数
void keyBackClicked();
void keyMenuClicked();

大爱!!!版主大人V5!多谢了

版主大人 ,我的问题还是没解决啊。你说的是CCLayer响应按键事件的方法。
可是我的场景是通过在CCScene中添加一个UILayer对象,UILayer对象添加一个加载ui json文件的UIWidget。
这该如何处理呢?不能通过注册回调函数的方式来实现keyBackClicked和keyMenuClicked吗?

CCScene类继承于CCLayer类的,你创建一个场景的时候就是CCLayer,这两个键被场景就收不对正好么?
这个错了,我说的是游戏默认场HellowordScene,当然你也可以加一个空layer,只用来接收这两个事件。

good ideal!!! :14: