CCEditBox/CCEditBoxImplIOS

#ifndef __CCEditBoxIMPLIOS_H__

#define __CCEditBoxIMPLIOS_H__

#include "cocos2d.h"

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)

#include "ExtensionMacros.h"

#include "CCEditBoxImpl.h"

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

@interface CustomUITextField : UITextField

{

}

@end

@interface EditBoxImplIOS : NSObject <UITextFieldDelegate>

{

CustomUITextField* textField_;

void* editBox_;

BOOL editState_;

}

@property(nonatomic, retain) UITextField* textField;

@property(nonatomic, readonly, getter = isEditState) BOOL editState;

@property(nonatomic, assign) void* editBox;

-(id) initWithFrame: (CGRect) frameRect editBox: (void*) editBox;

-(void) doAnimationWhenKeyboardMoveWithDuration:(float)duration distance:(float)distance;

-(void) setPosition:(CGPoint) pos;

-(void) setContentSize:(CGSize) size;

-(void) visit;

-(void) openKeyboard;

-(void) closeKeyboard;

@end

NS_CC_EXT_BEGIN

class CCEditBox;

class CCEditBoxImplIOS : public CCEditBoxImpl

{

public:

CCEditBoxImplIOS(CCEditBox* pEditText);

virtual ~CCEditBoxImplIOS();

virtual bool initWithSize(const CCSize& size);

virtual void setFont(const char* pFontName, int fontSize);

virtual void setFontColor(const ccColor3B& color);

virtual void setPlaceholderFont(const char* pFontName, int fontSize);

virtual void setPlaceholderFontColor(const ccColor3B& color);

virtual void setInputMode(EditBoxInputMode inputMode);

virtual void setInputFlag(EditBoxInputFlag inputFlag);

virtual void setMaxLength(int maxLength);

virtual int  getMaxLength();

virtual void setReturnType(KeyboardReturnType returnType);

virtual bool isEditing();

virtual void setText(const char* pText);

virtual const char* getText(void);

virtual void setPlaceHolder(const char* pText);

virtual void setPosition(const CCPoint& pos);

virtual void setVisible(bool visible);

virtual void setContentSize(const CCSize& size);

virtual void setAnchorPoint(const CCPoint& anchorPoint);

virtual void visit(void);

virtual void onEnter(void);

virtual void doAnimationWhenKeyboardMove(float duration, float distance);

virtual void openKeyboard();

virtual void closeKeyboard();

virtual void onEndEditing();

private:

voidinitInactiveLabels(const CCSize& size);

voidsetInactiveText(const char* pText);

voidadjustTextFieldPosition();

void            placeInactiveLabels();

CCLabelTTF*     m_pLabel;

CCLabelTTF*     m_pLabelPlaceHolder;

CCSize          m_tContentSize;

CCPoint         m_obPosition;

CCPoint         m_obAnchorPoint;

EditBoxImplIOS* m_systemControl;

int             m_nMaxTextLength;

bool            m_bInRetinaMode;

};

NS_CC_EXT_END

#endif /* #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) */

#endif /* __CCEditBoxIMPLIOS_H__ */

时间: 2024-11-01 19:59:11

CCEditBox/CCEditBoxImplIOS的相关文章

cocos2dx 2.2.5 CCEditBox IOS 适配问题

最近做着CCEditBox 时,发现点击后,里面的文字没有适配的 今天比较,所以解决一下这个问题 找到CCEditBox点击时响应的函数是  CCEditBoxImplIOS::openKeyboard 我们可以看看这个函数写了什么: -(void) openKeyboard { [[EAGLView sharedEGLView] addSubview:textField_];   // 添加 作为 subView [textField_ becomeFirstResponder]; } 完全没

cocos2dx注册场景 使用CCEditBox实现输入框

我们在开始玩一个游戏时,通常要做的第一件事就是注册账号,下面就让我们来制作一个简单的注册场景,我所使用的cocos2dx版本为2.2.2 在这个场景中最主要的元素就是输入框和按钮,我从网上找了一些素材(也有自己P的),样子不太好看,但是最终的效果都是一样的. 在这个场景中,元素的摆放和按钮的功能都比较简单,唯一有些困难的就是输入框.在cocos2dx2.2.2中输入框可以使用CCTextFieldTTF和CCEditBox来实现,我们这里使用的是CCEditBox. 下面我们先来看看这个注册场景

cceditbox和cocostudio联合界面点击事件无响应问题,Android中创建文件夹问题

这两个问题折腾了我一天多时间,尽快下班时候把创建文件夹问题给解决了,刚把cceditbox点击事件无响应问题解决了.真是大爽. 1.创建文件夹 _mkdir()这个c函数就行,在vs ide中,定位的头文件是direct.h,但是这个文件不被ndk编译通过,没有这个文件.好吧,死脑筋,开始怀疑eclipse库路径设置有问题,但是不知道哪不对,搜索到了头大地步,好吧,认真仔细一看,原来是在ndk中,_mkdir函数放在了#include <sys/stat.h>中,改为这个头文件就行了. 2.点

[Quick-x]移动CCEditbox的父对象导致输入框位置偏移问题

CCEditbox对象添加到某个layer,当layer移动时候,editbox输入状态下输入光标保持在原位,看起来就是光标发生了偏移 如果开始时添加的editbox不在屏幕内的话,光标会出现在屏幕边缘 参看了一下这篇文章 http://www.cnblogs.com/lan0725/p/3210963.html 输入光标的位置"只在setPosition 和 onEnter 两个方法里边调用" 既然这样的话只需要在began的时候加入设置位置的方法即可 local pointX =

CCEditBox/CCEditBoxImplMac

#ifndef __CCEditBoxIMPLMAC_H__ #define __CCEditBoxIMPLMAC_H__ #include "cocos2d.h" #if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) #import <Foundation/Foundation.h> #import <AppKit/AppKit.h> #include "ExtensionMacros.h" #includ

Cocos2d-X中的CCEditBox

和CCTextFieldTTF一样CCEditBox控件也是一个显示文本的控件 我们通过一个例子看看CCEditBox控件实现显示文本 首先需要在工程目录下的Resource文件夹中添加一张九位图 程序代码: #include "TCCEditBox.h" CCScene* TCCEditBox::scene() { CCScene* scene = CCScene::create(); TCCEditBox* layer = TCCEditBox::create(); scene-&

部分android手机CCEditBox输入之后键盘输入框不消失得问题

用小米2s做登录界面时,用到CCEditBOx,输入完之后,键盘可以移下去,但是屏幕上还是显示得键盘自己得输入框,这时点击屏幕任何位置都无法把输入框干掉. 为什么ios上就没有这些android得琐碎问题,解决办法:需要修改src/org.cocos2dx.lib/里得 Cocos2dxEditBoxDialog.java这个类,让其可以做到点击了屏幕之后,把键盘自己输入框里得内容拿到CCEditBox里面,并且把键盘输入框干掉. @Override protected void onCreat

宽字符、多字节、unicode、utf-8、gbk编码转化

今天遇到一个编码的问题,困惑了我很长时间,所以就简要的的了解了一下常用的编码类型. 我们最常见的是assic编码,它是一种单字节编码,对多容纳256个字符. 我们在编程的时候经常遇到unicode,unicode是一种宽字节编码,能够很好的融合世界各个国家的字符,具有国际通用性,所谓宽字符其实使用两个字节来表示一个符号. 而utf8是一种多字节编码,一个字符所占用的字节数不确定,是对unicode的精简版本,也用具有世界通用性.Gbk也是一种双字节编码,其实就是对中文简体的一种编码,不具有世界通

cocos2dx2.2.2弹出框的实现

在上一篇文章中,我们利用CCEditBox实现了输入框功能,使我们在注册时可以输入用户名和密码.但是当用户名和密码的输入不符合规范时,我们应该怎样给与用户提示呢?下面我们就来介绍弹出框的实现方式. 我们的思路就是,创建一个模态层,将当前场景的内容盖住,然后在弹出层上给与用户相应的提示并提供一个关闭弹出层的按钮.首先,我们先来看一下效果. 这里的标题和具体提示信息需要是自定义的,才能满足不同场景的需要,而确定按钮只是用来关闭弹出层的,所以这个弹出框的主要元素并不多,实现起来也比较简单. 另外,还有