0

TextField から文字列変数にテキストを取得するにはどうすればよいですか? 次のように .h ファイルでテキストフィールドと変数を宣言しました。

NewScene.h

    cocos2d::ui::TextField* textField;
std::string enteredData;

次にtextField、 in.cpp init() 関数を宣言し、メニューボタンを押した後、そこに書き込まれたものを変数に保存したいので、使用します 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;
    }
}

入力が終了した後にテキストを変数に保存すると思いましたが、そのようには機能しないと思います。

4

0 に答える 0