cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。

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


真心无力吐槽啊!!!这种巨大而又明显的Bug。。。

从昨天突发奇想用Cocos2d做软件开始,经历了太多的摧残,简直听者伤心,闻者落泪。。。

已经去Cocoachina论坛反馈了,虽然基本白费口舌。。。


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

1 auto listener = EventListenerKeyboard::create();
2 listener->onKeyPressed = CC_CALLBACK_2(HelloWorld::onKeyPressed, this);
3 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
1 void HelloWorld::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)
2 {
3     if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE)
4     {
5         std::string str = ssid->getStringValue();
6         ssid->setText(str.substr(0, str.size() - 1));
7     }
8 }

其中_eventDispatcher是CCNode中的变量,ssid是TextField。

唉,一声叹息。。。

原文地址:https://www.cnblogs.com/wolfred7464/p/3695263.html