zoukankan      html  css  js  c++  java
  • 使用COCOS2D-X JSB开发,在js页面中设置iOS键盘模式

     

    XYSDK.h

    void setKeyboardType(int type);

     

     

    XYSDK.cpp

    voidXYSDK::setKeyboardType(int type)

    {

    #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)

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

        if (pGlView)

        {

            if (0==type) {

                pGlView->setIMEKeyboardDefault();

            }elseif (1 ==type) {

               pGlView->setIMEKeyboardNumber();

            }

           pGlView->setIMEKeyboardState(true);

        }

    #endif

    }

    CCEGLView

    voidCCEGLView::setIMEKeyboardNumber()

    {

       

        EAGLView * view = [EAGLViewsharedEGLView];

        view.keyboardType = UIKeyboardTypeNumbersAndPunctuation;

       

    }

     

    voidCCEGLView::setIMEKeyboardDefault()

    {

       

        EAGLView * view = [EAGLViewsharedEGLView];

       

        view.keyboardType =UIKeyboardTypeDefault;

       

    }

     

     

    Jsb_xy.hpp

    JSBool js_xy_XYSDK_setKeyboardType(JSContext *cx, uint32_t argc, jsval *vp);

     

    Jsb_xy.cpp

    JSBooljs_xy_XYSDK_setKeyboardType(JSContext *cx, uint32_t argc, jsval *vp)

    {

        jsval *argv = JS_ARGV(cx, vp);

        JSBool ok = JS_TRUE;

        JSObject *obj = JS_THIS_OBJECT(cx, vp);

        js_proxy_t *proxy = jsb_get_js_proxy(obj);

        XYSDK* cobj = (XYSDK *)(proxy ?proxy->ptr : NULL);

        JSB_PRECONDITION2( cobj, cx, JS_FALSE, "InvalidNative Object");

        if (argc == 1) {

            int arg0;

            ok &= jsval_to_int32(cx, argv[0], (int32_t *)&arg0);

            JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");

            cobj->setKeyboardType(arg0);

            JS_SET_RVAL(cx, vp, JSVAL_VOID);

            returnJS_TRUE;

        }

       

        JS_ReportError(cx, "wrong number of arguments: %d, was expecting%d", argc, 1);

        returnJS_FALSE;

    }

    使用

    js文件里,attachWithIME之前设置setKeyboardType

     

    setKeyboardType(0) //默认键盘

    setKeyboardType(1//数字键盘

     

     

    xy.XYSDK.getInstance().setKeyboardType(1);

           this._MainUI.getWidgetByName("TextField_shu_ru").attachWithIME();

  • 相关阅读:
    通过包名获取该包下的所有类
    spring各版本下载地址
    Hash函数和消息摘要算法
    @Value在Controller中取值
    Velocity根据模版生成静态html
    所谓人生
    用递归解决问题
    获取客户端IP
    windows下文件名非法字符
    各控件所支持的数据源格式
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3850208.html
Copyright © 2011-2022 走看看