uitextarea

Создайте компонент текстовой области

Описание

txa = uitextarea создает текстовую область в новом окне рисунка и возвращает TextArea объект. MATLAB® вызывает uifigure функция для создания рисунка.

пример

txa = uitextarea(parent) создает текстовую область в указанном родительском контейнере. Родительским элементом может быть Figure созданный с использованием uifigure функции или одного из дочерних контейнеров.

пример

txa = uitextarea(___,Name,Value) задает TextArea свойства с использованием одного или нескольких Name,Value аргументы в виде пар. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

fig = uifigure;
txa = uitextarea(fig);

Создайте заполненную текстовую область.

fig = uifigure;
txa = uitextarea(fig,...
                'Value', {'First Name Last Name';...
                'Address 1'; 'Address 2';'City, State'; 'Postal Code'});

Заметьте, что текстовая область включает полосу прокрутки, чтобы пользователь приложения мог просмотреть почтовый код.

Определите текущий размер текстовой области.

size = txa.Position(3:4)
size =

   150    60

Увеличьте размер текстовой области, чтобы почтовый код отображался без использования полосы прокрутки.

txa.Position(3:4) = [155 75];

Прокрутка до нижней части текстовой области программно.

Создайте текстовую область. Задайте для него размер и длинный текст.

fig = uifigure;
txa = uitextarea(fig);
txa.Position = [100 100 80 80];
txa.Value = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.';

Прокрутка до нижней части текстовой области.

scroll(txa,'bottom')

Создайте текстовую область и две метки. Когда пользователь приложения вводит текст и кликает за пределами текстовой области, метка благодарит пользователя приложения за вход. Если пользователь приложения удаляет текст и кликает за пределами текстовой области, текст благодарности удаляется.

Сохраните следующий код в comments.m на пути MATLAB. Этот код создает окно рисунка, содержащее две метки и текстовую область. Когда пользователь приложения вводит текст и кликает за пределами текстовой области, ValueChangedFcn коллбэк обновляет одну из меток, чтобы поблагодарить пользователя.

function comments
% Create figure window and components

fig = uifigure('Position',[500 500 430 275]);

label1 = uilabel(fig,...
    'Position',[100 164 100 15],...
    'Text','Enter Comments:');

label2 = uilabel(fig,...
    'Position',[100 75 175 15],...
    'Text','');

textarea = uitextarea(fig,...
    'Position',[100 100 150 60],...
    'ValueChangedFcn',@(textarea,event) textEntered(textarea, label2));

% Create ValueChangedFcn callback
    function textEntered(textarea,label2)
        val = textarea.Value;
        label2.Text = '';
        % Check each element of text area cell array for text
        for k = 1:length(val)
            if(~isempty(val{k}))
                label2.Text = 'Thank you for your comments!';
                break;
            end
        end
    end
end

Выполняйте comments, и введите текст в поле текстовой области. Щелкните за пределами текстовой области, чтобы вызвать коллбэк.

Входные параметры

свернуть все

Родительский контейнер, заданный как Figure объект, созданный с использованием uifigure функция, или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если вы не задаете родительский контейнер, MATLAB вызывает uifigure функция для создания нового Figure объект, который служит родительским контейнером.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Editable','off' указывает, что пользователь приложения не может изменять текст текстовой области.

Перечисленные здесь свойства являются подмножеством доступных свойств. Полный список см. в разделе Свойства TextArea.

Значение, заданное как вектор символов, массив ячеек из векторов символов, строковые массивы или 1-D категориальный массив. MATLAB может правильно визуализировать форматированный текст, например:

cellArrayText{1} = sprintf('%s\n%s', 'Line 1', 'Line 2')
cellArrayText{2} = sprintf('%s\n%s', 'Line 3', 'Line 4')
textarea = uitextarea('Value',cellArrayText);

Если вы задаете это свойство как категориальный массив, MATLAB использует значения в массиве, а не полный набор категорий.

Если текст не помещается в ширину текстовой области, MATLAB переносит текст.

Если в текстовой области слишком много строк, MATLAB добавляет полосу прокрутки.

Пример: {'Joseph Welford'; «Мэри Рейли»; 'Роберта Зильберлихт'}

Значение изменило коллбэк, заданное как одно из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Коллбэк выполняется, когда пользователь изменяет текст и либо нажимает Tab либо кликает за пределами текстовой области. Оно не выполняется, если Value свойство изменяется программно.

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с текстовой областью. MATLAB передает эту информацию в ValueChangedData объект как второй аргумент функции обратного вызова. В App Designer аргумент называется event. Вы можете запросить свойства объекта с помощью записи через точку. Для примера, event.PreviousValue возвращает предыдущее значение текстовой области. The ValueChangedData объект недоступен для функций обратного вызова, заданных как векторы символов.

В следующей таблице перечислены свойства ValueChangedData объект.

СвойствоЗначение
ValueЗначение текстовой области после последнего взаимодействия пользователя приложения с ней
PreviousValueЗначение текстовой области перед самым последним взаимодействием пользователя приложения с ней
SourceКомпонент, который выполняет коллбэк
EventName'ValueChanged'

Для получения дополнительной информации о записи коллбэков см. Раздел «Запись коллбэков в App Designer».

Расположение и размер текстовой области относительно родительского элемента, заданные как вектор [left bottom width height]. Эта таблица описывает каждый элемент в векторе.

ЭлементОписание
leftРасстояние от внутреннего левого края родительского контейнера до внешнего левого края текстовой области
bottomРасстояние от внутреннего нижнего ребра родительского контейнера до внешнего нижнего ребра текстовой области
widthРасстояние между правым и левым внешними краями текстовой области
heightРасстояние между верхним и нижним внешними краями текстовой области

Все измерения указаны в пикселях модулей.

The Position значения относятся к drawable area родительского контейнера. Область векторной и растровой графики является областью внутри границ контейнера и не включает область, занимаемую украшениями, такими как панель меню или заголовок.

Пример: [100 100 100 90]

См. также

Функции

Свойства

Введенный в R2016a