修改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,这里写成了固定的数值就会有问题。