Objective c 获取顶级子级的类名

Objective c 获取顶级子级的类名,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我在objective c/cocos2d工作。我有一个名为AllLevelAndModes的场景,我添加了一个名为levelScroll的CCScrollView,类型为EasyLevel SelectScene。在这个级别的滚动条上,我有一系列用于游戏级别的按钮。当有人触摸其中一个按钮时,会出现一个弹出窗口,显示有关该级别的一些统计信息。我通过点击按钮将其添加到EasyLevel SelectScene来添加此弹出窗口。这个孩子属于类级别SelectDropdown。我想做一个功能,如果用户

我在objective c/cocos2d工作。我有一个名为AllLevelAndModes的场景,我添加了一个名为levelScroll的CCScrollView,类型为EasyLevel SelectScene。在这个级别的滚动条上,我有一系列用于游戏级别的按钮。当有人触摸其中一个按钮时,会出现一个弹出窗口,显示有关该级别的一些统计信息。我通过点击按钮将其添加到EasyLevel SelectScene来添加此弹出窗口。这个孩子属于类级别SelectDropdown。我想做一个功能,如果用户点击比整个屏幕小的弹出窗口,弹出窗口就会消失

现在我想我可以得到弹出窗口和屏幕的大小,如果用户点击x和y的范围之外,弹出窗口就会消失。但这有点麻烦。有更好的方法吗?我试图通过在弹出窗口出现时运行以下代码来获取被点击的类的名称

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    CGPoint touchLocationTemp = [[CCDirector sharedDirector] convertToGL: [touch locationInView:touch.view]];
    CCResponderManager *responder = [[CCDirector sharedDirector] responderManager];
    CCNode *node = [responder nodeAtPoint:touchLocationTemp];
    CCLOG(@"class type %@", node); //Always reads 'EasyLevelSelectScene' no matter where I tap

    if([node isKindOfClass:[EasyLevelSelectScene class]]) {
        //go back to level select screen
    }
}

不幸的是,这不起作用,因为无论我在哪里点击它都会记录EasyLevel SelectScene,即使我点击弹出窗口的顶部!它为什么要这样做,有没有办法得到最顶层孩子的类名?谢谢你的帮助

您可以使用中现成的弹出库。我认为它不支持CCNodes…仅支持UIViewController