关于3.16 TableView中加button的Bug

现在tableview 中加了button。reloadData之后,Button按钮点击事件失效。。

发现创建的时候按钮也会点击不了,必现的Bug…

是不是事件被拦截了?

好像是,我看了代码,TableView 跟 ScrollView 代码没怎么改。CCEventDispatcher.cpp 倒是改了很多,相比于3.12, 但暂时不知道是哪里的问题。。尴尬。。。

新版本(3.16)在CCNode.cpp 里面的cleanup()方法中加了这个
_eventDispatcher->removeEventListenersForTarget(this);

果然是 谢了哥们。。好想吐槽官方开发人员。。

我这个3.16版本原本就有这一句,但还是不行

void Node::cleanup()
{
#if CC_ENABLE_SCRIPT_BINDING
    if (_scriptType == kScriptTypeJavascript)
    {
        if (ScriptEngineManager::sendNodeEventToJS(this, kNodeOnCleanup))
            return;
    }
    else if (_scriptType == kScriptTypeLua)
    {
        ScriptEngineManager::sendNodeEventToLua(this, kNodeOnCleanup);
    }
#endif // #if CC_ENABLE_SCRIPT_BINDING
    
    // actions
    this->stopAllActions();
    // timers
    this->unscheduleAllCallbacks();

    _eventDispatcher->removeEventListenersForTarget(this);
    
    for( const auto &child: _children)
        child->cleanup();
}

它意思是加了这个,导致出问题的,把这句去掉试试,解决的话反馈一下

https://github.com/cocos2d/cocos2d-x/issues/18423 看这个