Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Cocos2dx-将文本字段转换为字符串_String_Variables_Cocos2d X_Textfield_Getstring - Fatal编程技术网

String Cocos2dx-将文本字段转换为字符串

String Cocos2dx-将文本字段转换为字符串,string,variables,cocos2d-x,textfield,getstring,String,Variables,Cocos2d X,Textfield,Getstring,如何将文本从TextField转换为字符串变量?我在.h文件中声明了textfield和variable,如下所示: 新闻新纪元 cocos2d::ui::TextField* textField; std::string enteredData; 然后在.cpp init函数中声明了textField,按下菜单按钮后,我想将其中写入的内容保存到变量中,因此我使用 enteredData=textField->getString;但是程序崩溃了,给了我一个访问冲突错误。谁能告诉我如何解

如何将文本从TextField转换为字符串变量?我在.h文件中声明了textfield和variable,如下所示:

新闻新纪元

    cocos2d::ui::TextField* textField;
std::string enteredData;
然后在.cpp init函数中声明了textField,按下菜单按钮后,我想将其中写入的内容保存到变量中,因此我使用 enteredData=textField->getString;但是程序崩溃了,给了我一个访问冲突错误。谁能告诉我如何解决这个问题

编辑

代码如下:

bool NewScene::init()
...
auto textField = ui::TextField::create("Nick: ", "fonts/Marker Felt.ttf", 30);
textField->setTextHorizontalAlignment(TextHAlignment::CENTER);
textField->setTextVerticalAlignment(TextVAlignment::CENTER);
textField->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
textField->setTouchAreaEnabled(true);
textField->setTouchSize(Size(200, 100));
textField->addEventListener(CC_CALLBACK_2(NewScene::textFieldEvent, this));

this->addChild(textField);
以及功能:

void NewScene::textFieldEvent(Ref *pSender, cocos2d::ui::TextField::EventType type)
  {
    switch (type)
    {
    case ui::TextField::EventType::ATTACH_WITH_IME:
    {
        CCLOG("Clicked");
        break;
    }
    case ui::TextField::EventType::DETACH_WITH_IME:
    {
        enteredData = textField->getString();
        break;
    }
}

我想它会在输入完成后将文本保存到变量中,但我想它不会这样做。

Hi,发布代码以识别错误源。enteredData=textField->getString是正确的用法,所以问题出在别处。@Elensar添加了代码。你知道什么会导致这种问题吗?删除auto关键字,你的头文件中已经有变量了。对于当前代码,自动文本字段textField永远不会分配给以后使用textField->getString。