您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx 2.x EditBox在6s plus下看不到输入文字的解决方案

2016-05-19 13:38 537 查看
修改extensions\GUI\CCEditBox目录下的CCEditBoxImplIOS.mm文件:

第258行:

m_bInRetinaMode = [[EAGLView sharedEGLView] contentScaleFactor] == 2.0f ? true : false;

改为

m_bInRetinaMode = [[EAGLView sharedEGLView] contentScaleFactor] >= 2.0f ? true : false;

第282行:

        if (m_bInRetinaMode)

        {

            rect.size.width /= 2.0f;

            rect.size.height /= 2.0f;

        }

改为

        if (m_bInRetinaMode)

        {

            rect.size.width /= [[EAGLView sharedEGLView] contentScaleFactor ];

            rect.size.height /= [[EAGLView sharedEGLView] contentScaleFactor ];

        }

第353行:float retinaFactor = m_bInRetinaMode ? 2.0f : 1.0f; 改为 float retinaFactor = m_bInRetinaMode ? [[EAGLView sharedEGLView] contentScaleFactor ] : 1.0f;

第521行:

    if (bInRetinaMode)

    {

        screenPos.x = screenPos.x / 2.0f;

        screenPos.y = screenPos.y / 2.0f;

    }

改为

   if (bInRetinaMode)

   {

        screenPos.x = screenPos.x / [[EAGLView sharedEGLView] contentScaleFactor ];

        screenPos.y = screenPos.y / [[EAGLView sharedEGLView] contentScaleFactor ];

   }

第549行:

    if (m_bInRetinaMode)

    {

        controlSize.width /= 2.0f;

        controlSize.height /= 2.0f;

    }

改为

   if (m_bInRetinaMode)

    {

        controlSize.width /=  [[EAGLView sharedEGLView] contentScaleFactor ];

        controlSize.height /=  [[EAGLView sharedEGLView] contentScaleFactor ];

    }

因为6/6s plus的contentScaleFactor 不是2.0,这里写成了固定的数值就会有问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息