在windows下使用TextField控件,退格键是不起作用的 这是因为CCGLView.cpp中通过监听GLFWChar来操作字符 但是退格键左右操作字符是不在这个函数回调的 但是CCGLView监听的GLFWKey并没有调用IMEDDispatch的dispatchDeleteBackward函数用于处理退格 是为了让我们自己控制退格键的作用? 解决方案有两个 1.修改CCGLView源码,在GLView::onGLFWKeyCallback函数中添加

1
2
3
4
5
6
7
if (GLFW_KEY_BACKSPACE == key)
{
    if (GLFW_REPEAT == action || GLFW_PRESS == action)
    {
        IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
    }
}

2.自己监听KeybordEvent,在退格处理用调用IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward() 但是第二种方法的问题是不能处理按键的GLFW_REPEAT事件,也就是一直按下退格无法连续删除文字