zoukankan      html  css  js  c++  java
  • 为cocos2dx 添加启动数字输入法的功能

            cocos2d-x 里面默认输入法只有一种,就是启动的时候就是系统默认的输入法,然后可以切换数字,中英文等等,

    但是我们程序里有个功能设置价格,不希望能够输入中英文,只要输入数字,输入以后再判断显然用户体验不好,咨询了官方人员获得了一些提示,

    但是仍然无法解决这个问题,最后在苹果官网查到了相关信息,测试一番后得到了现在的解决方案,存档备忘,并且share给大家。


             官方相关内容链接如下:https://developer.apple.combrary/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/Introduction/Introduction.html

             

              解决方法:

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

    @property(nonatomic) UIKeyboardType keyboardType;


    2、CCEGLView_ios.mm 里面添加对键盘设置的方法

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

    void CCEGLView::setIMEKeyboardNumber() 

    {

        EAGLView * view = [EAGLViewsharedEGLView];

        view.keyboardType =UIKeyboardTypeNumberPad;  

    }

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

    void CCEGLView::setIMEKeyboardDefault() 

    {

        EAGLView * view = [EAGLViewsharedEGLView];

        view.keyboardType =UIKeyboardTypePhonePad;   

    }


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

    enum eKeyBoardType{

        KEY_BOARD_TYPE_NORMAL = 0,

        KEY_BOARD_TYPE_NUMBER,

    };

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

        inline int getKeyboardType () {returnm_keyboardType; }

    eKeyBoardType m_keyboardType;


    4、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();

                }elseif (getKeyboardType() ==KEY_BOARD_TYPE_NUMBER) {

                    pGlView->setIMEKeyboardNumber();

                }

                pGlView->setIMEKeyboardState(true);

            }

        }

        return bRet;

    }


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

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


    转载请保留以下信息:

    作者(Author):smilelance

    出处( From ):http://blog.csdn.net/smilelance


  • 相关阅读:
    读《构建之法》阅读与思考
    软工沉浮沉沉沉沉沉沉…记事
    四则运算截图and代码
    2016012000郭慕然+散列函数的应用及其安全性
    结对作业之四则运算网页版
    阅读《构建执法》第四章及第十七章有感
    2016012000小学四则运算练习软件项目报告
    有关读《构建之法》的部分思考与疑问
    遇见·软件
    我的——今日学习内容
  • 原文地址:https://www.cnblogs.com/secbook/p/2655397.html
Copyright © 2011-2022 走看看