Как я могу изменить размер Ext.field.TextArea, чтобы он точно соответствовал размеру текста без полос прокрутки? - PullRequest
3 голосов
/ 21 марта 2012

У меня есть Ext.field.TextArea в приложении Sencha Touch 2.Я просто хочу, чтобы он увеличивался по высоте на основе текста, который он содержит.Как я могу это сделать?Кажется, что это такая базовая / простая функция, но я не могу найти ее в API.

Я использую этот компонент для отображения некоторого статического многострочного текста - есть ли другой компонент, который может бытьлучше подходит для этой задачи?

Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

1 голос
/ 04 апреля 2013

Я решил это так:

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 );
                }                   
            }
        }
    }       
},

});

0 голосов
/ 21 марта 2012

Использование элементов формы для неформальных элементов не является оптимальным решением.

Я бы порекомендовал изучить использование только легкого компонента Ext.container.Container или, возможно, Panel или Window, если вам нужен более привлекательный хром вокруг него.

...