1
2
3
4
5
6
7
8
9
|
//
SINGLE_LINE
//开启任何文本的输入键盘(不含换行)
ANY
//开启任何文本的输入键盘(含换行)
DECIMAL
//开启 数字 输入类型键盘(含小数点)
PHONE_NUMBER
//开启 电话号码 输入类型键盘
EMAIL_ADDRESS
//开启 邮件地址 输入类型键盘
NUMERIC
//开启 数字符号 输入类型键盘
URL
//开启 URL 输入类型键盘
//
|
1
2
3
4
5
6
7
|
//
PASSWORD
//密码形式
SENSITIVE
//敏感数据输入
INITIAL_CAPS_WORD
//每个单词首字符大写,并有提示
INITIAL_CAPS_SENTENCE
//第一句首字符大写,并有提示
INTIAL_CAPS_ALL_CHARACTERS
//自动大写
//
|
1
2
3
4
5
6
7
|
//
DEFAULT
//默认类型, "←"
DONE
//Done字样, "确定"
SEND
//Send字样, "发送"
SEARCH
//Search字样, "搜索"
GO
//Go字样, "链接"
//
|
1
2
3
4
|
//
#include "cocos-ext.h"
using
namespace
cocos2d::extension;
//
|
1
2
3
4
5
6
7
8
9
|
//
//create('编辑框大小', '按钮正常背景', '按钮按下背景', '按钮禁用背景');
static
CCEditBox* create(
const
CCSize& size, CCScale9Sprite* pNormal9SpriteBg,
CCScale9Sprite* pPressed9SpriteBg = NULL, CCScale9Sprite* pDisabled9SpriteBg = NULL);
//举例:
//CCSize editBoxSize = CCSizeMake(300, 60);
//CCEditBox* editBoxName = CCEditBox::create(editBoxSize, CCScale9Sprite::create("green_edit.png"));
//
|
1
2
3
4
5
6
7
8
9
|
//
//设置编辑框的委托代理对象,一般为this
//并且CCLayer必需要继承代理接口类CCEditBoxDelegate。
void
setDelegate(CCEditBoxDelegate* pDelegate);
CCEditBoxDelegate* getDelegate();
//举例:
/editBoxName->setDelegate(
this
);
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
//
/**
* setPlaceHolder , setPlaceholderFont ,
* setText , setFont , setMaxLength ,
* setPreferredSize
*/
//设置编辑框的默认内容。即当输入内容为空时,显示的内容。
void
setPlaceHolder(
const
char
* pText);
const
char
* getPlaceHolder(
void
);
//设置默认内容的字体
// pFontName 字体资源名
// fontSize 字体大小
// color 字体颜色
void
setPlaceholderFont(
const
char
* pFontName,
int
fontSize);
void
setPlaceholderFontName(
const
char
* pFontName);
void
setPlaceholderFontSize(
int
fontSize);
void
setPlaceholderFontColor(
const
ccColor3B& color);
//设置编辑框的输入内容setText
void
setText(
const
char
* pText);
const
char
* getText(
void
);
//设置输入内容的字体
// pFontName 字体资源名
// fontSize 字体大小
// color 字体颜色
void
setFont(
const
char
* pFontName,
int
fontSize);
void
setFontName(
const
char
* pFontName);
void
setFontSize(
int
fontSize);
void
setFontColor(
const
ccColor3B& color);
//输入字符控制,允许输入的最大字符长度
void
setMaxLength(
int
maxLength);
int
getMaxLength();
//设置编辑框大小
void
setPreferredSize(CCSize size);
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//
/**
* setInputMode ,
* setInputFlag ,
* setReturnType
*/
//设置虚拟键盘的编辑类型EditBoxInputMode
// kEditBoxInputModeSingleLine //开启任何文本的输入键盘(不含换行)
// kEditBoxInputModeAny //开启任何文本的输入键盘(含换行)
// kEditBoxInputModeDecimal //开启 数字 输入类型键盘(含小数点)
// kEditBoxInputModePhoneNumber //开启 电话号码 输入类型键盘
// kEditBoxInputModeEmailAddr //开启 邮件地址 输入类型键盘
// kEditBoxInputModeNumeric //开启 数字符号 输入类型键盘
// kEditBoxInputModeUrl //开启 URL 输入类型键盘
void
setInputMode(EditBoxInputMode inputMode);
//设置输入的文本类型EditBoxInputFlag
// kEditBoxInputFlagPassword //密码形式
// kEditBoxInputFlagSensitive //敏感数据输入
// kEditBoxInputFlagInitialCapsWord //每个单词首字符大写,并有提示
// kEditBoxInputFlagInitialCapsSentence //第一句首字符大写,并有提示
// kEditBoxInputFlagInitialCapsAllCharacters //自动大写
void
setInputFlag(EditBoxInputFlag inputFlag);
//设置虚拟键盘中return键显示的字符
// kKeyboardReturnTypeDefault //默认类型, "←"
// kKeyboardReturnTypeDone //Done字样, "确定"
// kKeyboardReturnTypeSend //Send字样, "发送"
// kKeyboardReturnTypeSearch //Search字样, "搜索"
// kKeyboardReturnTypeGo //Go字样, "链接"
void
setReturnType(KeyboardReturnType returnType);
//
|
1
2
3
4
5
6
7
8
9
10
|
//
//开始编辑时
virtual
void
editBoxEditingDidBegin(CCEditBox* editBox);
//结束编辑时
virtual
void
editBoxEditingDidEnd(CCEditBox* editBox);
//编辑框文字改变时
virtual
void
editBoxTextChanged(CCEditBox* editBox,
const
std::string& text);
//触发return后
virtual
void
editBoxReturn(CCEditBox* editBox);
//
|
1
2
3
4
5
6
7
8
9
|
//
class
HelloWorld :
public
cocos2d::CCLayer,CCEditBoxDelegate
{
virtual
void
editBoxEditingDidBegin(CCEditBox* editBox);
//开始编辑
virtual
void
editBoxEditingDidEnd(CCEditBox* editBox);
//结束编辑
virtual
void
editBoxTextChanged(CCEditBox* editBox,
const
std::string& text);
//编辑框文字改变
virtual
void
editBoxReturn(CCEditBox* editBox);
//触发return后的回调函数
}
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
//
//编辑框尺寸大小
CCSize editBoxSize = CCSizeMake(mysize.width - 100, 60);
//用户名editBoxName
CCEditBox* editBoxName = CCEditBox::create(editBoxSize, CCScale9Sprite::create(
"green_edit.png"
));
editBoxName->setPosition( ccp(mysize.width/2, mysize.height*3/4) );
this
->addChild(editBoxName);
//属性设置
editBoxName->setFontName(
"fonts/Paint Boy.ttf"
);
editBoxName->setFontSize(20);
editBoxName->setFontColor(ccRED);
editBoxName->setPlaceHolder(
"Name:"
);
editBoxName->setPlaceholderFontColor(ccWHITE);
editBoxName->setMaxLength(8);
//限制字符长度
//模式类型设置
editBoxName->setInputMode(kEditBoxInputModeSingleLine);
editBoxName->setInputFlag(kEditBoxInputFlagInitialCapsAllCharacters);
editBoxName->setReturnType(kKeyboardReturnTypeDefault);
//委托代理对象this
editBoxName->setDelegate(
this
);
//密码editBoxPassword
CCEditBox* editBoxPassword = CCEditBox::create(editBoxSize, CCScale9Sprite::create(
"orange_edit.png"
));
editBoxPassword->setPosition( midPos );
this
->addChild(editBoxPassword);
//属性设置
editBoxPassword->setFont(
"fonts/Marker Felt.ttf"
, 30);
editBoxPassword->setFontColor(ccGREEN);
editBoxPassword->setPlaceHolder(
"Password:"
);
editBoxPassword->setMaxLength(6);
//限制字符长度
//模式设置
editBoxPassword->setInputFlag(kEditBoxInputFlagPassword);
editBoxPassword->setReturnType(kKeyboardReturnTypeDone);
//委托代理对象this
editBoxPassword->setDelegate(
this
);
//邮箱editBoxEmail
CCEditBox* editBoxEmail = CCEditBox::create(editBoxSize, CCScale9Sprite::create(
"yellow_edit.png"
));
editBoxEmail->setPosition( ccp(mysize.width/2, mysize.height/4) );
this
->addChild(editBoxEmail);
//属性设置
editBoxEmail->setFont(
"fonts/Marker Felt.ttf"
, 30);
editBoxEmail->setPlaceHolder(
"Email:"
);
//模式类型设置
editBoxEmail->setInputMode(kEditBoxInputModeEmailAddr);
editBoxEmail->setReturnType(kKeyboardReturnTypeSend);
//委托代理对象this
editBoxEmail->setDelegate(
this
);
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//
//开始编辑
void
HelloWorld::editBoxEditingDidBegin(CCEditBox* editBox)
{
CCLog(
"editBox %p DidBegin !"
, editBox);
}
//结束编辑
void
HelloWorld::editBoxEditingDidEnd(CCEditBox* editBox)
{
CCLog(
"editBox %p DidEnd !"
, editBox);
}
//编辑框内容改变
void
HelloWorld::editBoxTextChanged(CCEditBox* editBox,
const
std::string& text)
{
CCLog(
"editBox %p TextChanged, text: %s "
, editBox, text.c_str());
}
//触发return返回
void
HelloWorld::editBoxReturn(CCEditBox* editBox)
{
CCLog(
"editBox %p was returned !"
,editBox);
}
//
|