我有一个selectfield
可以在桌面上完美运行(滚动,选择,触发正确的事件,更新相应的字段等),但在运行时选择后不会消失在手机上(iPhone)。
选择后,选择字段“滚轮”不会消失,并且在点击遮罩(滚动拾取区域外)时甚至不会消失。同样,这只发生在移动设备上,在桌面上完全没问题。
听起来像一个框架错误?请继续阅读以获取更多线索......
{
xtype: 'selectfield',
id: 'editor-page',
name: 'page',
label: 'Page',
labelWidth: 70,
options: [
{text: 'N/A', value: 'N/A'},
{text: '1', value: '1'},
{text: '2', value: '2'},
{text: '3', value: '3'}
// ...
]
}
根据我在网上看到的类似问题,我已经尝试过设置showAnimation: 'false'
。
强制hideOnMaskTap: 'true'
(即使默认情况下应该这样)
设置modal: 'true'
设置stopMaskTapEvent: 'false'
(允许在选择器外部进行点击)
(并且...以上的每一种组合,只是在框架怪癖或对我的相互依赖性的误解的情况下。)
在selectfield
上,我将听众置于以下事件中,作为捕捉选择更改并强制hide
或blur
的方法,但事实证明,他们是只能在桌面(Chrome)上启动,而不能在移动版Safari中启动。
listeners: {
'render': function (thisComponent) {
alert("select!");
thisComponent.blur();
},
'action': function (thisComponent) {
alert("action!");
thisComponent.blur();
},
'select': function (thisComponent) {
alert("select!");
thisComponent.blur();
}
}
此时,该项目可能没有足够的时间来考虑迁移到2.x的所有后果。因此,如果我绝对必须解决这个问题,这是我在深入迁移之前的最后努力。
答案 0 :(得分:0)
扯扯。事实证明,虽然未在 桌面 浏览器中呈现,但selectfield
的 移动 呈现显示一组“完成”和“取消”按钮。
由于桌面版本在选择时无需显示这些确认按钮,我忘记了移动渲染selectfield
显示确认按钮,而不是在选择器外点击/点击或清除掩码选择。
在我的特定情况下,我有一些CSS工具栏规则模糊了selectfield
选择器中的按钮。
因此,只需要找到合适的CSS选择器来显示移动设备上隐藏的按钮(虽然桌面上没有必要或可见)。
/* Override toolbar padding for selectfield confirmation toolbar */
.x-picker .x-toolbar .x-layout-box-inner {
margin-top: -35px;
}