我剛剛在我們的產品中解決了這個問題,在iPhone上調試的男孩是一個正確的痛苦,當你只有一個Windows桌面!
本質上,似乎發生的情況是,當一個插槽的選擇發生變化時,內部的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觸摸屏的哪個位置很重要,但現在看來它可以解決問題並達到我們的包裝截止日期!