4

私は簡単なウィンドウを持っています:

   this.window = Ext.widget('window', {
            title: 'Find',
            closeAction: 'hide',
            width: 300,
            layout: 'fit',
            items: form
        });

些細な形で

var form = Ext.widget('form', {
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    border: false,
    bodyPadding: 10,

    items: [
        this.findInput,
    ]
});

アイテムが1つしかない

    this.findInput = Ext.widget('textfield', {
        name: 'find'
    });

問題は、ウィンドウが表示された直後にフォーカスを設定する方法ですか? ほとんどすべてのウィンドウ イベント ハンドラで.focus()メソッドを呼び出そうとしましたが、うまくいきませんでした。this.findInput

DOM がすべての要素を完全に作成する前に、evenafterrenderが同期的に呼び出されるようです。

私は何を逃したのですか?すべての要素をレンダリングしてフォーカスを受け入れることができるようにするには、どのイベントにバインドする必要がありますか?

PS:.focus()10ミリ秒のような短い間隔で同じことを呼び出すと、集中しますが、解決策ではありません

4

1 に答える 1

6

activeItemプロパティをチェックアウト- http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Panel-cfg-activeItem

または、以下も使用できますdefaultFocus: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.window.Window-cfg-defaultFocus

于 2012-06-19T01:17:33.817 に答える