Cocos2dx/EditBox
提供: 初心者エンジニアの簡易メモ
EditBoxとは
入力欄のこと
サンプル
cocos2d::ui::EditBox* _editPassword = ui::EditBox::create(Size(visibleSize.width/3, 30), "extensions/orange_edit.png"); _editPassword->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2)); _editPassword->setFont("American Typewriter", 16); _editPassword->setFontColor(Color3B::GREEN); _editPassword->setPlaceHolder("Password:"); _editPassword->setMaxLength(6); _editPassword->setInputFlag(ui::EditBox::InputFlag::PASSWORD); _editPassword->setInputMode(ui::EditBox::InputMode::SINGLE_LINE); _editPassword->setText("初期文字"); addChild(_editPassword);
文字取得
_editPassword->getText();
イベント付きサンプル
HelloworldScene.h
#include "ui/CocosGUI.h" class HelloWorld : public cocos2d::Layer, cocos2d::ui::EditBoxDelegate { public: static cocos2d::Scene* createScene(); virtual bool init(); CREATE_FUNC(HelloWorld); private: virtual void editBoxEditingDidBegin(cocos2d::ui::EditBox* editBox); virtual void editBoxEditingDidEnd(cocos2d::ui::EditBox* editBox); virtual void editBoxTextChanged(cocos2d::ui::EditBox* editBox, const std::string& text); virtual void editBoxReturn(cocos2d::ui::EditBox* editBox); };
HelloworldScene.cpp
USING_NS_CC; using namespace ui; // 略 bool HelloWorld::init() { // 略 cocos2d::ui::EditBox* _editPassword = ui::EditBox::create(Size(visibleSize.width/3, 30), "extensions/orange_edit.png"); _editPassword->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2)); _editPassword->setFont("American Typewriter", 16); _editPassword->setFontColor(Color3B::GREEN); _editPassword->setPlaceHolder("Password:"); _editPassword->setMaxLength(6); _editPassword->setInputFlag(ui::EditBox::InputFlag::PASSWORD); _editPassword->setInputMode(ui::EditBox::InputMode::SINGLE_LINE); _editPassword->setDelegate(this); addChild(_editPassword); return true; } void HelloWorld::editBoxEditingDidBegin(EditBox *editBox) { } void HelloWorld::editBoxEditingDidEnd(EditBox *editBox) { } void HelloWorld::editBoxTextChanged(EditBox *editBox, const std::string& text) { } void HelloWorld::editBoxReturn(EditBox *editBox) { }
参考:http://falstar.hateblo.jp/entry/2016/07/18/213355
イベントを取得したいときのみEditBoxDelegateとsetDelegate(this)を追加する
Extensionは非推奨
cocos2d-x ui::EditBoxを使う
http://falstar.hateblo.jp/entry/2016/07/18/213355
数字のみに限定する
setInputMode(EditBox::InputMode::NUMERIC);