【问题标题】:Sencha iOS picker bugSencha iOS 选择器错误
【发布时间】:2014-05-06 18:48:05
【问题描述】:

我的应用程序即将完成,但有一个错误需要在发布前进行排序。该应用程序使用 Cordova 3.4 和 Sencha 为 iOS 和 Android 构建了一个“原生”应用程序(该错误仅与 iOS 相关)

Basically, when the picker value is changed, unless the user is quick enough in how they click Done, it reverts to the previous value - hard to explain! Here 是一个视频,展示了正在运行的错误。

如前所述,这只是 iOS 上的问题(Android 很好)。还值得注意的是,当应用程序的其他选择器中有两个值选项时,此错误不存在。例如,时间(小时和分钟)和日期(日和月)的选择器没有这个错误 - 只有单值选择器有问题。

有什么想法吗?

【问题讨论】:

    标签: ios extjs cordova picker


    【解决方案1】:

    我刚刚在我们的产品中解决了这个问题,当你只有一个 Windows 桌面时,在 iPhone 上进行调试是一件很痛苦的事情!

    基本上似乎正在发生的事情是,当插槽的选择发生变化时,内部 selectedIndex 属性正在更新,但 _value 没有 - 似乎正在咨询的是 _value。

    我创建了一个新的插槽类,如下所示,它覆盖 doItemTap 以确保正确设置值 (me._value = me.getValue(true);):

    Ext.define('Ext.ux.FixedSlot', {  
      extend: 'Ext.picker.Slot',
      xtype : 'fixedslot',
      doItemTap: function(list, index, item, e, event) {
          var me = this;
          me.selectedIndex = index;
          me.selectedNode = item;
          me._value = me.getValue(true);
          me.scrollToItem(item, true);
      }
    });
    

    然后在我的选择器定义配置中(我们有一个定义为 field.Select 的子类的类),我指示它使用我的新插槽类型 (defaultType: 'fixedslot'):

    Ext.define('Ext.ux.MyFixedPicker', {
      extend: 'Ext.field.Select',
      config : {
        defaultPhonePickerConfig : { defaultType: 'fixedslot' }
      }
    });
    

    我希望这可以帮助您避免我过去六个小时的一些痛苦!我仍然无法准确解释为什么/在 Sencha Touch 源中重要的位置,但目前看来它可以解决问题并满足我们的打包截止日期!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多