2

我在 Sencha Touch 2 中遇到文本字段问题,这仅在 iOS 7 中发生,并且在 iOS 6 和 Android 中运行良好。

问题是当您点击键盘打开但光标消失的字段时,它应该集中在选定的文本字段上,但它没有。您必须再次点击文本字段才能聚焦。

我已经在 iOS 6 和 android(在设备上以及在模拟器上)检查了这个问题,工作正常,但不是仅在 iOS 7 上。

有没有人有这个问题...?

这是煎茶中的错误还是我应该遗漏一些东西,请指教。

谢谢..

4

3 回答 3

0

在视口元标记中添加 height="device-height",解决了这个问题。

ios7 使用键盘 html 时出现 webview 焦点问题

于 2013-12-03T06:27:00.947 回答
0

我花了几天时间弄清楚这一点。实际上 Sencha 对 ViewPort 高度的理解存在问题。在您的 index.html 中添加一个带有以下代码的脚本块

if (window.device && parseFloat(window.device.version) == 7.0) {
   document.body.style.paddingTop = "20px";
   Ext.Viewport.setHeight(Ext.Viewport.getWindowHeight() - 20);
}

这为你做了两件事

  1. 它在顶部提供了足够的空间来显示活动栏
  2. 它将视口高度设置为屏幕高度,而不管键盘是否存在。

此外,如果您的应用程序在纵向和横向模式下工作,您需要在 Viewport.js(或 Main.js)中添加这些行

initialize: function(){
    Ext.Viewport.on('orientationchange', 'handleOrientationChange', this, {buffer: 0 });
},

handleOrientationChange: function(){
     try{
           if (parseFloat(window.device.version) == 7.0) {
            Ext.Viewport.setHeight(Ext.Viewport.getWindowHeight() - 20);
            }else{
            Ext.Viewport.setHeight(Ext.Viewport.getWindowHeight());
            }
      }catch(e){
                // do nothing
      }
},

是的,确保他们的键盘弹跳是真的(如果你使用的是科尔多瓦)。这将确保您的字段不会被隐藏。

希望这对你有用。

于 2013-11-20T03:42:02.733 回答
0

我发现这与两件事直接相关:

  1. centered: true
  2. pack: 'center'

当我删除这些行时,我的应用程序开始运行良好。挑战在于找到一种替代方法来使您的面板居中。

于 2013-10-09T20:46:45.463 回答