Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uitextarea

テキスト エリア コンポーネントの作成

説明

txa = uitextarea は、テキスト エリアを新しい Figure ウィンドウ内に作成し、TextArea オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

txa = uitextarea(parent) は、指定された親コンテナー内にテキスト エリアを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

txa = uitextarea(___,Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して、TextArea のプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

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.';

Text area in a UI figure window. The text area is vertically scrollable.

テキスト エリアの最下部までスクロールします。

scroll(txa,'bottom')

Text area in a UI figure window. The text area is scrolled to the bottom.

テキスト エリアを 1 つとラベルを 2 つ作成します。アプリ ユーザーがテキストを入力してテキスト エリアの外部をクリックすると、ラベルにはアプリ ユーザーの入力を感謝するテキストが表示されます。アプリ ユーザーがテキストを削除してテキスト エリアの外部をクリックした場合、感謝のテキストは削除されます。

MATLAB パス上の comments.m に次のコードを保存します。このコードは、2 つのラベルと 1 つのテキスト エリアを含む Figure ウィンドウを作成します。アプリ ユーザーがテキストを入力してテキスト エリアの外部をクリックすると、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 を実行してから、テキスト エリア フィールドにテキストを入力します。テキスト エリアの外部をクリックしてコールバックをトリガーします。

入力引数

すべて折りたたむ

親コンテナー。関数 uifigure を使用して作成された Figure オブジェクト、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。親コンテナーを指定しない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして機能する新しい Figure オブジェクトを作成します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'Editable','off' は、アプリ ユーザーがテキスト エリアのテキストを変更できないように指定します。

以下にリストするプロパティは、利用できるプロパティの一部です。完全なリストについては、TextArea のプロパティ を参照してください。

値。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。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);

このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

テキストがテキスト エリアの幅に収まらない場合、MATLAB はテキストを折り返します。

行数が多すぎてテキスト エリアに表示できない場合、MATLAB はスクロール バーを追加します。

例: {'Joseph Welford'; 'Mary Reilly'; 'Roberta Silberlicht'}

値が変更されたときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックは、ユーザーがテキストを変更してから Tab キーを押すかテキスト エリアの外部をクリックすると実行されます。Value プロパティがプログラムにより変更される場合には実行されません。

このコールバック関数は、ユーザーのテキスト エリア操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.PreviousValue はテキスト エリアの直前の値を返します。ValueChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、ValueChangedData オブジェクトのプロパティを示します。

プロパティ
Valueアプリ ユーザーによる最新操作の後のテキスト エリアの値
PreviousValueアプリ ユーザーによる最新操作の前のテキスト エリアの値
Sourceコールバックを実行するコンポーネント
EventName'ValueChanged'

コールバックの記述の詳細については、App Designer のコールバックを参照してください。

値が変更中のコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは次のように実行されます。

  • ユーザーがテキスト エリアに入力する間、コールバックは繰り返し実行されます。

  • ユーザーが Tab キーを押すかテキスト エリアの外部をクリックすると、コールバックが実行されます。

テキスト エリアの値がプログラムによって変更された場合、コールバックは実行されません。

このコールバック関数は、ユーザーのテキスト エリア操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangingData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Value は、コールバックの実行をトリガーしたテキスト エリア内の値です。ValueChangingData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

ValueChangingData オブジェクトのプロパティは次のようになります。

プロパティ説明
Valueコールバックの実行をトリガーした値
Sourceコールバックを実行するコンポーネント
EventName'ValueChanging'

TextArea オブジェクトの Value プロパティは、ユーザーが Tab キーを押すかテキスト エリアの外部をクリックするまで更新されません。ただし、ValueChangingData オブジェクトの Value プロパティをクエリすることで、ユーザーによる入力中もテキストを取得できます。

コールバックの記述の詳細については、App Designer のコールバックを参照してください。

親を基準にしたテキスト エリアの位置とサイズ。ベクトル [left bottom width height] として指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からテキスト エリアの外側左端までの距離
bottom親コンテナーの内側下端からテキスト エリアの外側下端までの距離
widthテキスト エリアの外側の右端と左端の間の距離
heightテキスト エリアの外側の上端と下端の間の距離

すべての測定単位はピクセルです。

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。

例: [100 100 100 90]

バージョン履歴

R2016a で導入

すべて展開する