Main Content

EditField のプロパティ

編集フィールドの外観と動作の制御

編集フィールドは、テキストを入力するための UI コンポーネントです。プロパティが編集フィールドの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

fig = uifigure; ef = uieditfield(fig); ef.Value = 'New sample';

テキスト

すべて展開する

編集フィールド内のテキスト。文字ベクトルまたは string スカラーとして指定します。MATLAB®はテキストを 1 行として表示します。複数行のテキストを許可する場合は、編集フィールドの代わりにテキスト エリア コンポーネントを使用します。

例:'Hello world'

編集フィールドのプレースホルダー テキスト。文字ベクトルまたは string スカラーとして指定します。プレースホルダーは、想定される入力に関する簡単なヒントを提供します。テキストはValueプロパティが''である場合にのみ表示されます。

例:'Enter text'

編集フィールド内のテキストの配置。“左”'right'または'center'として指定します。配置は、アプリ ユーザーが編集フィールドを編集するときの表示と、MATLAB によるアプリでのテキストの表示に影響します。

フォントと色

すべて展開する

フォント名。システムでサポートされているフォント名として指定します。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。

指定したフォントが利用できない場合、MATLAB は、アプリが実行中のシステムで利用可能なフォントから最もよく一致するフォントを使用します。

例:'Arial'

フォント サイズ。正の数値として指定します。測定単位はピクセルです。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。

例:14

フォントの太さ。次のいずれかの値として指定します。

  • “正常”— 各フォントで定義されている既定の太さ

  • 'bold'“正常”よりも太い文字

すべてのフォントに太字フォントがあるとは限りません。太字がないフォントの場合、'bold'を指定すると標準フォントの太さになります。

フォントの角度。“正常”または'italic'として指定します。すべてのフォントにイタリックのフォントの角度があるわけではありません。イタリックがないフォントの場合、'italic'を指定すると標準フォントの角度になります。

フォントの色。RGB 3 成分、16 進数カラー コードまたは表にリストされたオプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は[0,1]の範囲でなければなりません。たとえば[0.4 0.6 0.7]のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の0からFまでの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード'#FF8800''#ff8800''#F80'、および'#f80'は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名 省略名 RGB 3 成分 16 進数カラー コード 外観
“红色” 'r' [1 0 0] '#FF0000'

Sample of the color red

'green' 'g' [0 1 0] '#00FF00'

Sample of the color green

'blue' 'b' [0 0 1] '#0000FF'

Sample of the color blue

'cyan' 'c' [0 1 1] '#00FFFF'

Sample of the color cyan

'magenta' 'm' [1 0 1] '#FF00FF'

Sample of the color magenta

'yellow' 'y' [1 1 0] '#FFFF00'

Sample of the color yellow

'black' 'k' [0 0 0] '#000000'

Sample of the color black

'white' 'w' [1 1 1] '#FFFFFF'

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分 16 進数カラー コード 外観
[0 0.4470 0.7410] '#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980] '#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250] '#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560] '#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880] '#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330] '#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840] '#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

背景色。RGB 3 成分、16 進数カラー コード、または表にリストされた色オプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は[0,1]の範囲でなければなりません。たとえば[0.4 0.6 0.7]のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の0からFまでの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード'#FF8800''#ff8800''#F80'、および'#f80'は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名 省略名 RGB 3 成分 16 進数カラー コード 外観
“红色” 'r' [1 0 0] '#FF0000'

Sample of the color red

'green' 'g' [0 1 0] '#00FF00'

Sample of the color green

'blue' 'b' [0 0 1] '#0000FF'

Sample of the color blue

'cyan' 'c' [0 1 1] '#00FFFF'

Sample of the color cyan

'magenta' 'm' [1 0 1] '#FF00FF'

Sample of the color magenta

'yellow' 'y' [1 1 0] '#FFFF00'

Sample of the color yellow

'black' 'k' [0 0 0] '#000000'

Sample of the color black

'white' 'w' [1 1 1] '#FFFFFF'

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分 16 進数カラー コード 外観
[0 0.4470 0.7410] '#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980] '#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250] '#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560] '#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880] '#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330] '#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840] '#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

対話機能

すべて展開する

可視性の状態。'on'または'off'、もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

  • 'on'— オブジェクトを表示します。

  • 'off'— オブジェクトを削除せずに非表示にします。非表示の UI コンポーネントのプロパティには引き続きアクセスできます。

アプリの起動を高速化するには、起動時に表示する必要のないすべての UI コンポーネントのVisibleプロパティを'off'に設定します。

編集フィールドの編集可否。'on'または'off'、もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

このプロパティはEnableプロパティ値と組み合わせて使用して、コンポーネントがアプリ ユーザーの入力に応答する場合とその応答方法を決定します。

  • 編集フィールドを編集可能にして関連するコールバックをトリガー可能にするには、Enableプロパティ値とEditableプロパティ値の両方を'on'に設定します。

  • 編集フィールドを編集不可にし、ただし、テキストを読みやすくするには、Enableプロパティ値を'on'に、Editableプロパティ値を'off'に設定します。

  • 編集フィールドを編集不可にしてテキストをグレー表示するには、両方のプロパティを'off'に設定します。

編集フィールドの操作可能状態。'on'または'off'、もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

このプロパティはEditableプロパティ値と組み合わせて使用して、コンポーネントがアプリ ユーザーの入力に応答する場合とその応答方法を決定します。

  • 編集フィールドを編集可能にして関連するコールバックをトリガー可能にするには、Enableプロパティ値とEditableプロパティ値の両方を'on'に設定します。

  • 編集フィールドを編集不可にし、ただし、テキストを読みやすくするには、Enableプロパティ値を'on'に、Editableプロパティ値を'off'に設定します。

  • 編集フィールドを編集不可にしてテキストをグレー表示するには、両方のプロパティを'off'に設定します。

ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

コンテキスト メニュー。関数uicontextmenuを使用して作成されたContextMenuオブジェクトとして指定します。このプロパティは、コンポーネントを右クリックしたときにコンテキスト メニューを表示するために使用します。

位置

すべて展開する

親を基準にした編集フィールドの位置とサイズ。ベクトル[left bottom width height]として指定します。次の表で、ベクトルの各要素について説明します。

要素 説明
left 親コンテナーの内側左端から編集フィールドの外側左端までの距離
bottom 親コンテナーの内側下端から編集フィールドの外側下端までの距離
width 編集フィールドの外側の右端と左端の間の距離
height 編集フィールドの外側の上端と下端の間の距離

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

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

例:[150 130 100 22]

編集フィールドの内側の位置とサイズ。[left bottom width height]として指定します。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。このプロパティ値は、Positionプロパティと同一です。

このプロパティは読み取り専用です。

編集フィールドの外側の位置とサイズ。[left bottom width height]として返されます。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。このプロパティ値は、Positionプロパティと同一です。

レイアウト オプション。GridLayoutOptionsオブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptionsオブジェクトのRowプロパティおよびColumnプロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。

たとえば、以下のコードは、編集フィールドをその親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]); ef = uieditfield(g); ef.Layout.Row = 3; ef.Layout.Column = 2;

編集フィールドが複数の行または列にまたがるようにするには、RowまたはColumnプロパティを 2 要素ベクトルとして指定します。たとえば、次の編集フィールドは2列目から3列目にまたがります。

ef.Layout.Column = [2 3];

コールバック

すべて展開する

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

  • 関数ハンドル。

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

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

ユーザーが編集フィールド内のテキストを変更してから、Enterキーを押すか、編集フィールドの外部をクリックすると、コールバックが実行されます。編集フィールドの値がプログラムによって変更された場合には実行されません。

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

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

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

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

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

  • 関数ハンドル。

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

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

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

  • ユーザーが編集フィールドに入力する間、コールバックは繰り返し実行されます。

  • ユーザーがEnterキーを押すと、コールバックが実行されます。

編集フィールドの値がプログラムによって変更された場合,コールバックは実行されません。

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

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

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

EditFieldオブジェクトのValueプロパティは、ユーザーがEnterキーを押すまで更新されません。ただし、ValueChangingDataオブジェクトのValueプロパティをクエリすることで,Enterキーを押す前に、ユーザーが入力しているテキストを取得できます。

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

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB はCreateFcnコールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcnプロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントにCreateFcnプロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数gcboを使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前にDeleteFcnコールバックを実行します。DeleteFcnプロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数gcboを使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on'または'off'、もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

このプロパティは実行中のコールバックが割り込み可能かどうかを決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中"コールバックは、現在実行しているコールバックです。

  • "割り込み"コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB は、コールバック キューを処理するコマンドを実行するたびにコールバックの割り込み動作を判別します。これらのコマンドには、drawnowfigureuifiguregetframewaitforpauseがあります。

実行中コールバックにこれらのコマンドが含まれていない場合、割り込みは発生しません。MATLAB は、実行中コールバックの実行を先に終了させ、その後に割り込みコールバックを実行します。

実行中コールバックにこれらのいずれかのコマンドが含まれている場合、実行中コールバックを所有するオブジェクトのInterruptibleプロパティに応じて割り込みが発生するかどうかが決まります。

  • Interruptibleの値が'off'の場合,割り込みは発生しません。代わりに、割り込みコールバックを所有するオブジェクトのBusyActionプロパティに応じて、割り込みコールバックが破棄されるかコールバック キューに追加されるかが決まります。

  • Interruptibleの値が'on'の場合、割り込みが発生します。MATLAB は、コールバック キューの次回処理時に、実行中コールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了した後、MATLAB は実行中だったコールバックの実行を再開します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックがDeleteFcnCloseRequestFcnまたはSizeChangedFcnコールバックの場合、Interruptibleプロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数waitforを現在実行している場合、Interruptibleプロパティの値にかかわらず割り込みが発生します。

  • 割り込みコールバックがTimerオブジェクトで所有されている場合、Interruptibleプロパティの値にかかわらずスケジュールに従ってコールバックが実行されます。

メモ

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gcaコマンドやgcfコマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue'または'cancel'として指定します。BusyActionプロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中"コールバックは、現在実行しているコールバックです。

  • "割り込み"コールバックは、実行中のコールバックに割り込もうとするコールバックです。

BusyActionプロパティによってコールバック キューイングの動作が決まるのは、次の両方の条件を満たす場合のみです。

  • 実行中コールバックにdrawnowfigureuifiguregetframewaitforpauseなどのコールバック キューを処理するコマンドが含まれている。

  • 実行中コールバックを所有するオブジェクトのInterruptibleプロパティの値が'off'である。

これらの条件に当てはまる場合、割り込みコールバックを所有するオブジェクトのBusyActionプロパティに応じて MATLAB による割り込みコールバックの処理方法が決まります。BusyActionプロパティは次の値を取ることができます。

  • 'queue'— 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel'——割り込みコールバックを実行しません。

このプロパティは読み取り専用です。

削除状態。matlab.lang.OnOffSwitchState型の on/off logical 値として返されます。

MATLAB は、DeleteFcnコールバックが実行を開始すると、BeingDeletedプロパティを'on'に設定します。コンポーネント オブジェクトが存在しなくなるまでBeingDeletedプロパティは'on'に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するためにBeingDeletedプロパティの値をチェックします。

親/子

すべて展開する

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

オブジェクト ハンドルの可視性。'on''callback'または'off'として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、getfindobjclfおよびcloseが含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。

HandleVisibility の値 説明
'on' オブジェクトは常に参照できます。
'callback' オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。
'off' オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility'off'に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。

識別子

すべて展開する

このプロパティは読み取り専用です。

グラフィックス オブジェクトのタイプ。'uieditfield'として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意のTag値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数findobjを使用してTag値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserDataプロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

バージョン履歴

R2016a で導入