我有一个简单的窗口:
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,
]
});
只有一个项目
this.findInput = Ext.widget('textfield', {
name: 'find'
});
问题是:如何在窗口显示后立即设置焦点?我试图在几乎每个窗口事件处理程序中调用.focus()
this.findInput
方法而没有运气。
在DOM完全创建所有元素之前,似乎同步调用偶数afterrender
。
我错过了什么?我应该绑定什么事件来渲染所有元素并能够接受焦点?
PS:如果我在10毫秒的小间隔后调用相同的.focus()
- 我会把它集中注意力,但这不是一个解决方案
答案 0 :(得分:5)
查看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