为cocos2d-x 添加启动数字输入法的功能
cocos2d-x 里面默认输入法只有一种,就是启动的时候就是系统默认的输入法,然后可以切换数字,中英文等等, 但是我们程序里有个功能设置价格,不希望能够输入中英文,只要输入数字,输入以后再判断显然用户体验不好,咨询了官方人员获得了一些提示, 但是仍然无法解决这个问题,最后在苹果官网查到了相关信息,测试一番后得到了现在的解决方案,存档备忘,并且share给大家。 官方相关内容链接如下:https://developer.apple.combrary/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/Introduction/Introduction.html
解决方法: 1、EAGLView.h里面添加键盘类型属性 @property(nonatomic)UIKeyboardTypekeyboardType; 2、CCEGLView_ios.mm 里面添加对键盘设置的方法 //设置为只有数字输入法的键盘
voidCCEGLView::setIMEKeyboardNumber() { EAGLView* view = [EAGLViewsharedEGLView]; view.keyboardType=UIKeyboardTypeNumberPad; } //设置为默认的输入法键盘 voidCCEGLView::setIMEKeyboardDefault() view.keyboardType=UIKeyboardTypePhonePad; } 3、CCTextFieldTTF.h里面添加自定义的输入法键盘种类来做管理 enumeKeyBoardType{ KEY_BOARD_TYPE_NORMAL =0, KEY_BOARD_TYPE_NUMBER,43); font-family:Arial; font-size:14px; line-height:26px"> }; inlinevoidsetKeyboardType (eKeyBoardTypetype) {m_keyboardType= type; } inlineintgetKeyboardType () {returnm_keyboardType; } eKeyBoardTypem_keyboardType; 4、boolCCTextFieldTTF::attachWithIME()改成这样:
boolCCTextFieldTTF::attachWithIME() boolbRet =CCIMEDelegate::attachWithIME(); if(bRet) { // open keyboard CCEGLView* pGlView =CCDirector::sharedDirector()->getOpenGLView(); if(pGlView) { if(getKeyboardType() ==KEY_BOARD_TYPE_NORMAL) { pGlView->setIMEKeyboardDefault(); }elseif(getKeyboardType() ==KEY_BOARD_TYPE_NUMBER) { pGlView->setIMEKeyboardNumber(); } pGlView->setIMEKeyboardState(true); } } returnbRet; 5、初始化用来输入的CCTextFieldTTF的时候调用 setKeyboardType(KEY_BOARD_TYPE_NUMBER);来设置输入法为数字即可 本文转载自:http://blog.csdn.net/smilelance/article/details/7244759 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |