如何在 ExtJS6 中扩展组合框的焦点?

How to expand combobox on focus in ExtJS6?

我正在尝试展开焦点上的可编辑组合框:

{
    queryMode: 'local',
    triggerAction: 'all',
    forceSelection: true,
    editable: true,
    anyMatch: true,
    valueField: 'id',
    displayField: 'name',
    store: store,
    listeners: {
        focus: function(){
            this.expand();
        }
    },
}

当您单击未聚焦组合的实际触发器时,此方法效果不佳 - 它会立即打开和关闭它。

有趣的是 tagfield 默认输入具有我正在尝试模拟的行为,也许我缺少一个选项。

https://fiddle.sencha.com/#fiddle/17ok

您可以在侦听器中查看展开状态:

if (!this.isExpanded) {
    this.expand();
}

这就是我最终所做的,它比焦点方法有一个优势,即每次点击都可以扩展组合,而不仅仅是第一次点击。

listeners: {
    render: function(el){
        el.getEl().down('input').on({
            scope: el,
            click: function(){
                if(!this.isExpanded) {
                    this.expand();
                }
            },
        });
    },
}