#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"

#include "CCEditBoxImpl.h"

@interface CustomNSTextField : NSTextField

{

}

@end

@interface EditBoxImplMac : NSObject <NSTextFieldDelegate>

{

CustomNSTextField* textField_;

void* editBox_;

BOOL editState_;

}

@property(nonatomic, retain) NSTextField* textField;

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

@property(nonatomic, assign) void* editBox;

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

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

-(void) setPosition:(NSPoint) pos;

-(void) setContentSize:(NSSize) size;

-(void) visit;

-(void) openKeyboard;

-(void) closeKeyboard;

@end

NS_CC_EXT_BEGIN

class CCEditBox;

class CCEditBoxImplMac : public CCEditBoxImpl

{

public:

CCEditBoxImplMac(CCEditBox* pEditText);

virtual ~CCEditBoxImplMac();

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 doAnimationWhenKeyboardMove(float duration, float distance);

virtual void openKeyboard();

virtual void closeKeyboard();

virtual void onEnter(void);

private:

NSPoint    convertDesignCoordToScreenCoord(const CCPoint& designCoord, bool bInRetinaMode);

void       adjustTextFieldPosition();

CCSize     m_tContentSize;

CCPoint    m_obPosition;

CCPoint    m_obAnchorPoint;

int        m_nMaxTextLength;

bool       m_bInRetinaMode;

EditBoxImplMac*  m_pSysEdit;

};

NS_CC_EXT_END

#endif // #if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)

#endif /* __CCEditBoxIMPLMAC_H__ */

CCEditBox/CCEditBoxImplMac的更多相关文章

  1. (转) CCEditBox 编辑框

    CCEditBox 编辑框 原文: http://blog.csdn.net/cloud95/article/details/8773470 分类: cocos2d-x 2013-04-08 19:1 ...

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

    用小米2s做登录界面时,用到CCEditBOx,输入完之后,键盘可以移下去,但是屏幕上还是显示得键盘自己得输入框,这时点击屏幕任何位置都无法把输入框干掉. 为什么ios上就没有这些android得琐碎 ...

  3. cocos2d-x CCEditBox 字符不能显示完全的bug

    cocos2d-x CCEditBox 字符不能显示完全的bug (cocos2dx版本 2.2.0)用CCEditBox制作帐号输入框,当输入的内容超过框的宽度时,框里面不会显示当前输入的字符,显示 ...

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

    我们在开始玩一个游戏时,通常要做的第一件事就是注册账号,下面就让我们来制作一个简单的注册场景,我所使用的cocos2dx版本为2.2.2 在这个场景中最主要的元素就是输入框和按钮,我从网上找了一些素材 ...

  5. COCOS2DX2.2.2 创建CCEditBox输入框架实现文本及密码输入

    本文转载于: http://5.quanpao.com/?p=561 使用CCEditBox需要启用扩展库既extension ,因此需要引入这个空间名 有两种方法, using namespace ...

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

    CCEditbox对象添加到某个layer,当layer移动时候,editbox输入状态下输入光标保持在原位,看起来就是光标发生了偏移 如果开始时添加的editbox不在屏幕内的话,光标会出现在屏幕边 ...

  7. Cocos2d-x CCEditBox & CCTextFieldTTF

    下面简单记录一下如何Cocos2d-x中创建输入编辑框.在引擎中为我们提供了这样两个类:CCEditBox  和  CCTextFieldTTF. 一.CCEditBox ①这个类文件的位置 ②这个类 ...

  8. CCEditBox用法

    1.以下是CCEditBox的相关函数和类型说明: /* 编辑框的一些函数 setText("字符串"); //设置文本 setFontColor(color); //设置文本颜色 ...

  9. cocos2dx CCEditBox

    CCTextFieldTTF是一个简单的封装,用起来不是那么便利,在cocos2dx的extension里,对输入框有更加简单使用的类,那就是CCEditBox 上代码先: bool EditBox0 ...

随机推荐

  1. Django day25 序列化组件(*****)

    序列化:将变量从内存中存储或传输的过程称之为序列化 1.序列化组件是干什么用的? 对应着表,写序列化的类 2.如何使用序列化组件 Serializer 1) 重命名:用source:xx = seri ...

  2. warning: remote HEAD refers to nonexistent ref, unable to checkout

    今天使用git clone时候 提示 warning: remote HEAD refers to nonexistent ref, unable to checkout 经过测试解决办法如下 git ...

  3. Linq学习(二)-本次学习用到的资料

    本次学习用到的数据库初始化脚本如下 use KMS create table Blog_User ( UserId ,1), NickName ), CreateTime datetime ) cre ...

  4. jquery ajax在IE9以下进行跨域请求时无效的问题

    第一步:设置浏览器安全属性,启用[通过域访问数据源]选项: 1.选择Internet选项 2.选择安全---自定义级别 3.找到其他---通过域访问数据源,选择启用,然后确定就可以了. 第二步:调用a ...

  5. unity 旋转两种方法

    transform.Rotate(new Vector3(0, 10, 10)*speed*Time.deltaTime); // 物体绕x轴.y轴.z轴旋转 transform.RotateArou ...

  6. 屏蔽scrollview的滚动

    外层有scrollview时,手指移动方向跟滚动条方向相同时,会导致scrollview的滚动.此时如果不想滚动的话,可以在要接受ontouch的子视图,或者子子视图中的touch监听里加上v.get ...

  7. 在VirtualBox上安装Solaris 10全教程(包括下载)

    您可以在博文的最下方留下评价, 也可以点击左边的 关注 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐 来支持一下喔 如果您对博文有任何疑问, 可以通过评论或发邮件的 ...

  8. dubbo之配置规则

    配置规则 向注册中心写入动态配置覆盖规则 1.该功能通常由监控中心或治理中心的页面完成. RegistryFactory registryFactory = ExtensionLoader.getEx ...

  9. 批量obj格式直接转gltf

    在cesium中的模型需要的是gltf或glb格式的文件,之前的做法是用将模型从3d max中导出dae格式的文件(需要插件),然后用collada2gltf工具将dae格式转成gltf. 最近翻看c ...

  10. vue中fetch请求

    1. 请求方式:get 请求参数:menuName 返回的结果:data created(){ this._initPageData() }, methods:{ _initPageData(){ f ...