文本框(TextField)

如果你想让参与游戏的玩家可以自定义一个昵称怎么办,在哪里输入文本?Cocos2d-x 提供 TextField 满足这种需求。它支持触摸事件,焦点,定位内容百分比等。

创建一个文本框:

C++

  1. #include "ui/CocosGUI.h"
  2. auto textField = TextField::create("","Arial",30);
  3. textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
  4. std::cout << "editing a TextField" << std::endl;
  5. });
  6. this->addChild(textField);

这个例子中,创建了一个 TextField,指定了回调函数。

提供的文本框对象,是多功能的,能满足所有的输入需求,比如用户密码的输入,限制用户可以输入的字符数等等!

看一个例子:

C++

  1. #include "ui/CocosGUI.h"
  2. auto textField = TextField::create("","Arial",30);
  3. // make this TextField password enabled
  4. textField->setPasswordEnabled(true);
  5. // set the maximum number of characters the user can enter for this TextField
  6. textField->setMaxLength(10);
  7. textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
  8. std::cout << "editing a TextField" << std::endl;
  9. });
  10. this->addChild(textField);

屏幕上一个文本框是这样的:

 文本框(TextField)  - 图1

当点击文本框,键盘就会自动调出来,此时可以输入文本:

 文本框(TextField)  - 图2

原文: http://docs.cocos.com/cocos2d-x/manual/zh/ui_components/textfields.html