cocos2d-x 调用虚拟键盘设置默认输入法

来源:互联网 发布:电脑电视台直播软件 编辑:程序博客网 时间:2024/05/17 20:55

cocos2d-x里面默认输入法就是调用系统默认的输入法,然后可以切换数字、中英文等,但是有些需求想让输入法默认数字,比如输入密码或电话等,这样体验会好很多的。

别的不多说了,直接上步骤。

1、EAGLView.h里面添加键盘类型属性

@property(nonatomicUIKeyboardType keyboardType;

2、CCEGLView.h里面添加对键盘设置的方法

//设置为只有数字输入法的键盘

void setIMEKeyboardNumber() ;

//设置为默认的输入法键盘

void setIMEKeyboardDefault();

3、CCEGLView.mm里面添加对键盘设置的方法

//设置为只有数字输入法的键盘

void CCEGLView::setIMEKeyboardNumber() 

{

EAGLView * view = [EAGLView sharedEGLView];

view.keyboardType =UIKeyboardTypeNumberPad

}

//设置为默认的输入法键盘

void CCEGLView::setIMEKeyboardDefault()

{

EAGLView * view = [EAGLView sharedEGLView];

view.keyboardType =UIKeyboardTypePhonePad

}

4、CCTextFieldTTF.h里面添加自定义的输入法键盘种类来做管理

enum eKeyBoardType

{

KEY_BOARD_TYPE_NORMAL = 0,

KEY_BOARD_TYPE_NUMBER,

};


inline void setKeyboardType (eKeyBoardType type) {m_keyboardType = type;}

inline int getKeyboardType () {return m_keyboardType;}

eKeyBoardType m_keyboardType;

5、bool CCTextFieldTTF::attachWithIME()改成这样:

bool CCTextFieldTTF::attachWithIME()

{

bool bRet = CCIMEDelegate::attachWithIME();

if (bRet)

{

// open keyboard

CCEGLView * pGlView = CCDirector::sharedDirector()->getOpenGLView();

if (pGlView)

{

if (getKeyboardType() ==KEY_BOARD_TYPE_NORMAL)

{

pGlView->setIMEKeyboardDefault();

}

else if (getKeyboardType() ==KEY_BOARD_TYPE_NUMBER

{

pGlView->setIMEKeyboardNumber();

}

pGlView->setIMEKeyboardState(true);

}

}

return bRet;

}

6、初始化用来输入的CCTextFieldTTF的时候调用

setKeyboardType(KEY_BOARD_TYPE_NUMBER);来设置输入法为数字即可





0 0
原创粉丝点击