TextField不能删除内容,以及我的解决办法。。。

3.0正式版,win32下,TextField按下backspace键不能删除内容。
网上搜了下,很早就有的问题了,正式版了竟然还不解决。。。

为了给妹子写个华丽的Wifi共享助手,不得已上了Cocos2d。(呃。。)
输入ssid和key的两个TextField没法用,只好瞎搞,自己研究了一个凑合用的方案。。。

思路就是监听按键事件,调用setText修改内容。。。

上代码吧。。。

auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = CC_CALLBACK_2(HelloWorld::onKeyPressed, this);
```



然后
void HelloWorld::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)
{
 if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE)
 {
 std::string str = ssid->getStringValue();
 ssid->setText(str.substr(0, str.size() - 1));
 }
}
```


注意str.size()-1越界判断。我还没写完。。

吐槽一下论坛发帖,忘了输验证码返回内容全没了,打字打了三遍了。。。

发的代码少了一行,应该是

auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = CC_CALLBACK_2(HelloWorld::onKeyPressed, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
```

:14:过来看看

“IT_xiao小巫” 是你的ID吗?

嗯,是我的ID

竟然被我一眼就认出来了。。
我曾经看过你的面试经验。。