本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-X 节点(CCTextFieldTTF.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
///cocos2d-x-3.0alpha0/cocos2dx/text_input_node
#ifndef __CC_TEXT_FIELD_H__
#define __CC_TEXT_FIELD_H__
#include "label_nodes/CCLabelTTF.h"
#include "text_input_node/CCIMEDelegate.h"
NS_CC_BEGIN
class TextFieldTTF;
/**
* @addtogroup input
* @{
*/
class CC_DLL TextFieldDelegate
{
public:
/**
@brief 如果 sender(发送者)不希望 attach(附加到) IME, return true;
*/
virtual bool onTextFieldAttachWithIME(TextFieldTTF * sender)
{
CC_UNUSED_PARAM(sender);
return false;
}
/**
@brief 如果 sender(发送者)不希望和 detach(分离) IME, return true;
*/
virtual bool onTextFieldDetachWithIME(TextFieldTTF * sender)
{
CC_UNUSED_PARAM(sender);
return false;
}
/**
@brief 如果 sender(发送者)不希望插入 text , return true;
*/
virtual bool onTextFieldInsertText(TextFieldTTF * sender, const char * text, int nLen)
{
CC_UNUSED_PARAM(sender);
CC_UNUSED_PARAM(text);
CC_UNUSED_PARAM(nLen);
return false;
}
/**
@brief 如果 sender(发送者)不希望删除 delText , return true;
*/
virtual bool onTextFieldDeleteBackward(TextFieldTTF * sender, const char * delText, int nLen)
{
CC_UNUSED_PARAM(sender);
CC_UNUSED_PARAM(delText);
CC_UNUSED_PARAM(nLen);
return false;
}
/**
@brief 如果 sender(发送者)不希望被绘制 , return true.
*/
virtual bool onDraw(TextFieldTTF * sender)
{
CC_UNUSED_PARAM(sender);
return false;
}
};
/**
@brief 一个简单的使用 TTF 字体的输入 field(文本).
*/
class CC_DLL TextFieldTTF : public LabelTTF, public IMEDelegate
{
public:
/**
* @js ctor
*/
TextFieldTTF();
/**
* @js NA
* @lua NA
*/
virtual ~TextFieldTTF();
//char * description(); //描述
/** 使用 fontname, alignment, dimension 、 font size 创建一个 TextFieldTTF*/
static TextFieldTTF * textFieldWithPlaceHolder(const char *placeholder, const Size& dimensions, TextHAlignment alignment, const char *fontName, float fontSize);
/** 使用 fontname、 font size 创建一个 TextFieldTTF */
static TextFieldTTF * textFieldWithPlaceHolder(const char *placeholder, const char *fontName, float fontSize);
/** 使用 fontname, alignment, dimension 、 font size 初始化一个 TextFieldTTF */
bool initWithPlaceHolder(const char *placeholder, const Size& dimensions, TextHAlignment alignment, const char *fontName, float fontSize);
/** 使用 fontname、 font size 初始化一个 TextFieldTTF */
bool initWithPlaceHolder(const char *placeholder, const char *fontName, float fontSize);
/**
@brief 打开键盘和接收输入文本.
*/
virtual bool attachWithIME();
/**
@brief 最终文本输入和关闭键盘.
*/
virtual bool detachWithIME();
//
// properties
//
/**
* @js NA
* @lua NA
*/
inline TextFieldDelegate* getDelegate() const { return _delegate; };
/**
* @js NA
* @lua NA
*/
inline void setDelegate(TextFieldDelegate* delegate) { _delegate = delegate; };
inline int getCharCount() const { return _charCount; };
virtual const Color3B& getColorSpaceHolder();
virtual void setColorSpaceHolder(const Color3B& color);
//输入文本属性
public:
virtual void setString(const char *text);
virtual const char* getString(void) const;
protected:
TextFieldDelegate * _delegate;
int _charCount;
std::string * _inputText;
//文本属性的占位符
//如果文本字段为 nil 占位符将显示.
public:
virtual void setPlaceHolder(const char * text);
virtual const char * getPlaceHolder(void);
protected:
std::string * _placeHolder;
Color3B _colorSpaceHolder;
public:
virtual void setSecureTextEntry(bool value);
virtual bool isSecureTextEntry();
protected:
bool _secureTextEntry;
protected:
virtual void draw();
//
// IMEDelegate interface
//
virtual bool canAttachWithIME();
virtual bool canDetachWithIME();
virtual void insertText(const char * text, int len);
virtual void deleteBackward();
virtual const char * getContentText();
private:
class LengthStack;
LengthStack * _lens;
};
// end of input group
/// @}
NS_CC_END
#endif // __CC_TEXT_FIELD_H__