ios6、7一切正常,CCEditBox点击输入后,自动弹出键盘(我的程序是横屏),并且显示区域自动上弹到合适的位置,以使得输入框不被键盘遮挡
昨晚升级到IOS8,结果发现,键盘依然能够弹出,但是原本应该上弹的画面,变成横向向右移动到屏幕之外了,完全看不到输入框
大家碰到这个问题没有?
ios6、7一切正常,CCEditBox点击输入后,自动弹出键盘(我的程序是横屏),并且显示区域自动上弹到合适的位置,以使得输入框不被键盘遮挡
昨晚升级到IOS8,结果发现,键盘依然能够弹出,但是原本应该上弹的画面,变成横向向右移动到屏幕之外了,完全看不到输入框
大家碰到这个问题没有?
等开发团队修复把,相信3.2.1很快出来了
…
希望有大牛尽快找到解决方案,不要等官方更新,否则对那些已经上线的游戏耗不起啊
我的临时解决方法是在CCEAGLView doAnimationWhenKeyboardMoveWithDuration中的statusBarOrientation判断做修改
楼主能否分享你的方案啊。。
这个问题是ISO8 下 ,window bounds 的变化引起的。
我也是想和你类似的方案,但是这样会有偏差,屏幕向上缩进,计算的距离不对,是按照横屏的宽做参考计算的,除非缩进距离在根据长宽比再次计算下。这样感觉好乱啊。
这个不知何时能出新版本啊




请问这个方法可靠吗?
我的搞定了,把/cocos2dx/platform/ios/EAGLView.mm里面的 statusBarOrientation] 修改成 getFixedOrientation( statusBarOrientation])
再增加这个函数就行了
UIInterfaceOrientation getFixedOrientation(UIInterfaceOrientation statusBarOrientation)
{
if ( systemVersion] floatValue] >= 8.0)
{
statusBarOrientation = UIInterfaceOrientationPortrait;
}
return statusBarOrientation;
}
注意里面有两个地方需要替换
ios8之前,横屏应用传过来的坐标系也是竖屏的,也就是高比宽大,坐标原点也是竖屏的,xy是反的
其实这算个bug,EGALView.mm里面有一段代码是用来转换横屏应用坐标的
ios8某个测试版本改成了横屏时,宽比高大,坐标系都是横屏的左下角了,这样之前的转换就错了
不过ios8某个测试版本有这个问题,而正式推送的版本没这个问题
估计是苹果发现好多应用的表现都不对,又改回去了
所以现在应该是不用更改
如果一定要更改,EGALView.mm里判断一下宽和高谁大,再做转换
EAGLView.mm里面的有两个地方要做 width 和 height 互换,当在IOS8的系统下时候。
注意要在横屏时候才做互换,竖屏的时候不做互换。
— Begin quote from ____
引用第12楼sandy_ruoyu于2014-09-24 15:54发表的 回 9楼(dylan465) 的帖子 :
EAGLView.mm里面的有两个地方要做 width 和 height 互换,当在IOS8的系统下时候。
注意要在横屏时候才做互换,竖屏的时候不做互换。
http://www.cocoachina.com/bbs/job.php?action=topost&tid=230896&pid=1063277
— End quote
我也那么处理的,不过目前直接写死了
确实可以,现在cocos2d-x最新发布的2.2.6版本已经更新了,并且支持64位的。苹果一变,大家都得跟着变,真是坑呀!






碰到相同的问题,在cocos2dx自带的测试程序里面按照上面说的方法可以修复,但是项目里面用这个方法解决不了。。。。 