键盘拆分挂在opengl应用程序中

时间:2012-02-25 15:49:37

标签: opengl-es ios5 hang

我在主菜单中有UITextField的OpenGL应用程序。当我点击文本字段时,键盘出现,我可以编辑文本。但是如果我在iOS 5下运行并且如果我尝试拆分键盘那么键盘开始分裂(我的意思是动画)然后当我松开手指时挂起。我的意思是它挂在一半分裂 - 并没有更多的响应。但我的应用程序仍然存在 - 渲染效果很好 - 背景动画仍在运行。

我刚做了一个简单的测试 - 完全禁用了渲染。问题已经消失了。所以这个问题与OpenGL有关。

我使用OpenGL ES 1.1, XCode 4.2和iOS SDK 5.0。

有人有类似的问题吗?有什么建议吗?

请帮忙。


更新: 我刚从AppStore测试了另外两款游戏 - 其中一款我也发现了这个问题! '罗马道路高清免费' - iPad游戏。

2 个答案:

答案 0 :(得分:3)

我也遇到过这个问题,但由于以前的经验,我能够修复它。在一个应用程序中,我们发现如果我们在播放视频时保持GL视图处于活动状态,则视频播放位置滑块的表现并不顺畅。键盘拆分似乎也是如此。如果您的问题与我的问题相同,则问题与未完成的键盘分割动画有关(在我们的例子中,每次测试时仍然受到影响的点)

我们在收到UIKeyboardWillChangeFrame通知并在UIKeyboardDidChangeFrame之后再次启动时解决了在GL视图上停止动画的问题(我打赌它叫做EAGLView)。

答案 1 :(得分:0)

旧帖子,但我刚刚在iPad3上的ios 8中遇到过这个问题。

以60fps运行OpenGL应用程序似乎会限制键盘更新。在键盘覆盖处于活动状态时降低FPS将解决问题。

我正在使用GLKViewController以60fps刷新来管理更新和Draw回调,但这导致键盘拆分锁定完成一半。 我发现对我来说最好的解决方案是在接收文本输入时将视图的preferredFramesPerSecond设置为20,然后在关闭textView后将其设置回60。除了修复键盘挂起之外,它还使键盘通常更具响应性。

myViewController.preferredFramesPerSecond = 20;