编辑器的文本输入框无法处理TEXTFIELD_EVENT_DELETE_BACKWARD事件

  1. 运行环境:
    win7/64
    cocos2dx 3.0
    vs2013

  2. 问题描述:
    运行cocos2dx 3.0正式版的cpp-tests项目遇到问题:
    编辑器的文本输入框无法处理TEXTFIELD_EVENT_DELETE_BACKWARD事件
    在文件cocos2d-x-3.0\tests\cpp-tests\Classes\ExtensionsTest\CocoStudioGUITest\UITextFieldTest\UITextFieldTest_Editor.cpp中有如下代码:

void UITextFieldTest_Editor::textFieldEvent(Ref *pSender, TextFiledEventType type)
{
    switch (type)
    {
        case TEXTFIELD_EVENT_ATTACH_WITH_IME:
            _displayValueLabel->setText("attach with IME");
            break;
            
        case TEXTFIELD_EVENT_DETACH_WITH_IME:
            _displayValueLabel->setText("detach with IME");
            break;
            
        case TEXTFIELD_EVENT_INSERT_TEXT:
            _displayValueLabel->setText("insert words");
            break;
            
        case TEXTFIELD_EVENT_DELETE_BACKWARD:
            _displayValueLabel->setText("delete word");
            break;
            
        default:
            break;
    }
}

用于处理文本输入框的四个事件,其他三个事件都可以处理,但是对于事件TEXTFIELD_EVENT_DELETE_BACKWARD没有反应。求解决办法

CCGLView.cpp (文件)在监听Backspace键的中处理回退事件。
具体操作:
修改CCGLView.cpp文件onGLFWKeyCallback函数
void GLView::onGLFWKeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods)
{
if (GLFW_REPEAT != action)
{
EventKeyboard event(g_keyCodeMap, GLFW_PRESS == action);
if ((EventKeyboard::KeyCode::KEY_BACKSPACE == event.getKeyCode()) && event.getPressStatus())
{
IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
}
else
{
auto dispatcher = Director::getInstance()->getEventDispatcher();
dispatcher->dispatchEvent(&event);
}
}
}