• 为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


  • 相关阅读:
    IntelliJ IDEA 2019.3 激活码
    TortoiseGit创建分支合并
    Lombok常用注解
    springboot项目打包发布流程
    liunx下部署jar包
    TortoiseGit配置SSH
    springboot单元测试 Failed to load ApplicationContext
    IDEA SpringBoot项目 Maven Reading Maven projects
    Spring的xml配置文件标签导入问题
    CentOS7 root用户、普通用户 vim与vi的切换
  • 原文地址:https://www.cnblogs.com/secbook/p/2655397.html
Copyright © 2020-2023  润新知