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,这里写成了固定的数值就会有问题。
第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,这里写成了固定的数值就会有问题。
相关文章推荐
- SourceProvider.getJniDirectories
- Trac 中文语言安装
- 软件 bug 的生命周期
- Firefox2中输入框丢失光标bug的解决方法
- for命令的一些bug分析
- 修正IE下使用CSS属性overflow的bug
- 解决IE6 3像素Bug的css写法
- Cocos2d-x中背景音乐和音效使用实例
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
- Cocos2d-x UI开发之文本类使用实例
- Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
- Cocos2d-x UI开发之菜单类使用实例
- Cocos2d-x UI开发之CCControlButton控件类实例
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- 跟我学习JScript的Bug与内存管理
- JS注释所产生的bug 即使注释也会执行
- IE本地存储userdata的一个bug说明
- IE在DOM操作有表单控件时的bug
- ie 处理 gif动画 的onload 事件的一个 bug