如何将Ext.field.TextArea的大小设置为没有滚动条的文本大小?

时间:2012-03-21 03:13:13

标签: extjs sencha-touch-2

我在Sencha Touch 2应用中有一个Ext.field.TextArea。我只是希望它根据它包含的文本扩展高度。我怎样才能做到这一点?它似乎是一个基本/简单的功能,但我无法在API中找到它。

我正在使用此组件显示一些静态多行文本 - 是否有另一个组件可能更适合此任务?

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

我这样解决了:

Ext.define('ParentsApp.component.TextAreaAutomaticRow', {
extend: 'Ext.form.Select',
xtype: 'textareaautomaticrow',  
config: {
    maxRows: 2,
    autoHeight: true,
    listeners: {
        keyup: function (field, event) {
            if (field.autoHeight) {                 
                var numOfRows = field.getValue().split("\n").length;
                if( numOfRows >= 2) {
                    numOfRows = numOfRows++;
                    field.setMaxRows( numOfRows );
                } else if (numOfRows < field.getMaxRows()) {
                    field.setMaxRows( numOfRows + 1 );
                }                   
            }
        }
    }       
},

});

答案 1 :(得分:0)

对非表单项使用表单元素不是最佳解决方案。

我建议只考虑使用轻量级Ext.container.Container组件,或者如果你需要更高级的镀铬,可以使用Panel或Window。