【求助】TouchOneByOne事件没反应

注册了一个EventListenerTouchOneByOne事件,但是在模拟器中点击没有任何的反应,
写了个log输出提示也没有反应!!
但是在以前的代码中这样用过,是有效的,现在头也大了,找不到问题所在!!!
求各位高手帮忙看看!!!!

.h文件代码

#ifndef StartScene_H
#define StartScene_H
#include “cocos2d.h”
#include “cocostudio/CocoStudio.h”
#include “ui/UIbutton.h”
#include “GameScene.h”
using namespace cocos2d;

class StartScene : public Layer {
public:
static Scene* createScene();

virtual bool init();

CREATE_FUNC(StartScene);

};

#endif

.cpp文件代码

#include “StartScene.h”
using namespace cocos2d::ui;

Scene* StartScene::createScene() {
auto scene = Scene::create();
auto layer = StartScene::create();
scene->addChild(layer);
return scene;
}

bool StartScene::init() {
if (!Layer::init()){
return false;
}

Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

Node *startScene = CSLoader::createNode("StartScene.csb");
auto btnPlay = static_cast<Button*>(startScene->getChildByName("playBtn"));

auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = ](Touch* touch, Event *event) {return true; };
listener->onTouchMoved = ](Touch* touch, Event *event) {};
listener->onTouchEnded = ](Touch* touch, Event *event) {
    //Director::getInstance()->replaceScene(GameScene::createScene());
    log("touch num:%d",1);
    Director::getInstance()->end();
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, btnPlay);
this->addChild(startScene);

return true;

}