「Cocos2dx/EditBox」の版間の差分
提供: 初心者エンジニアの簡易メモ
| 行13: | 行13: | ||
_editPassword->setText("初期文字"); | _editPassword->setText("初期文字"); | ||
addChild(_editPassword); | addChild(_editPassword); | ||
| + | |||
| + | ==文字取得== | ||
| + | _editPassword->getText(); | ||
==イベント付きサンプル== | ==イベント付きサンプル== | ||
2017年4月17日 (月) 16:06時点における版
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);
