ExtJs:defaultFocus不会将焦点放在表单textfield上

ExtJs:defaultFocus不会将焦点放在表单textfield上,extjs,Extjs,看到这把小提琴了吗。 即使通过#fldxyz引用组件正确设置了defaultFocus,组件也不会获得焦点 Ext.application({ name : 'myapp', // autoCreateViewport is deprecated mainView: 'myapp.MyPanel', launch : function() { } }); Ext.define('myapp.MyPanel', { extend: 'Ext.p

看到这把小提琴了吗。 即使通过#fldxyz引用组件正确设置了defaultFocus,组件也不会获得焦点

Ext.application({
    name : 'myapp',

    // autoCreateViewport is deprecated
    mainView: 'myapp.MyPanel',

    launch : function() {
    }
});

Ext.define('myapp.MyPanel', {
    extend: 'Ext.panel.Panel',          // does not work
//    extend: 'MyPanel',                // works

    layout: 'fit',
    //defaultFocus: '[reference=fld]',
    //defaultFocus: 'textfield:first',
    defaultFocus: '#fldxyz',
    items: [{
        xtype: 'form',
        layout: 'anchor',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Name',
            value: 'Indigo',
            id: 'fldxyz',
            //reference: 'fld',
            selectOnFocus: true
        }, {
            xtype: 'textfield',
            fieldLabel: 'Last',
            value: 'Montoya'
        }]
    }]
});
我用6.6.0和7.2.0测试了它

怎么了

感谢以下内容:指定在调用此容器的方法焦点方法时接收焦点的子组件。 您没有调用focus()方法,因此它没有焦点。我已将其添加到“afterrender”侦听器事件中

Ext.application({
    name : 'myapp',
    mainView: 'myapp.MyPanel'
});

Ext.define('myapp.MyPanel', {
    extend: 'Ext.panel.Panel',
    title: "My Form Panel",
    layout: 'fit',
    defaultFocus: '#fldxyz',
    items: [{
        xtype: 'form',
        layout: 'anchor',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Name',
            value: 'Indigo',
            id: 'fldxyz',
            selectOnFocus: true
        }, {
            xtype: 'textfield',
            fieldLabel: 'Last',
            value: 'Montoya'
        }]
    }],
    listeners: {
        afterrender: function(formPanel) {
            formPanel.focus();
        }
    }
});
在中,如下所示:指定在调用此容器的方法focus方法时接收焦点的子组件。 您没有调用focus()方法,因此它没有焦点。我已将其添加到“afterrender”侦听器事件中

Ext.application({
    name : 'myapp',
    mainView: 'myapp.MyPanel'
});

Ext.define('myapp.MyPanel', {
    extend: 'Ext.panel.Panel',
    title: "My Form Panel",
    layout: 'fit',
    defaultFocus: '#fldxyz',
    items: [{
        xtype: 'form',
        layout: 'anchor',
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Name',
            value: 'Indigo',
            id: 'fldxyz',
            selectOnFocus: true
        }, {
            xtype: 'textfield',
            fieldLabel: 'Last',
            value: 'Montoya'
        }]
    }],
    listeners: {
        afterrender: function(formPanel) {
            formPanel.focus();
        }
    }
});

好的,我知道了。谢谢。好的,我知道了。非常感谢。