Edittext UI コントロール

ユーザ インタフェース コントロール > 共通プロパティ > レイアウト > タイプ > Edittext

 

   

ユーザ インタフェースの作成 - クイック ナビゲーション

edittext コントロール は、テキストの入力や編集が可能なテキスト フィールドとして使用します。

構文は次のようになります。

edittext <name> [<caption>] [text:<string>] [fieldWidth:<integer>] [height:<integer>] [bold:<boolean>] [labelOnTop:<boolean>] [readOnly:<boolean>]

edittext 項目の位置合わせの既定値は、 #left です。

   

パラメータ

text:   

編集ボックスのテキスト文字列です。パラメータに複数のテキスト行を指定するには、改行復帰(¥r )と改行(¥n )の両方のシーケンスを指定してください。たとえば、「最初の行 ¥r¥n次の行」とします。

   

fieldWidth: 

編集ボックスのピクセル幅です。既定では、幅は、キャプション テキストの直後からロールアウトの右マージンまでに設定されます。

   

height: 

テキストの 1 行を超えるピクセル単位の高さを指定する editText 項目定義に対して、明示的な height: パラメータが指定されている場合、その editText 項目は複数行の編集ボックスになり(18 ピクセル)、複数行のテキストを入力できるようになります。

警告:

edittext の高さを 18 ピクセル以上に指定した場合、 on entered イベント ハンドラは、この edittext が複数行モードになるため、呼び出されません。

   

bold: 

true に設定した場合、編集ボックス内のテキスト文字列は太字で表示されます。 false に設定した場合、テキストは太字でない、標準の形式で表示されます。既定値は false です。

   

labelOnTop: 

true に設定すると、キャプションが編集テキスト ボックスの上に配置されます。 false に設定されている場合、または省略されている場合、キャプションは編集テキスト ボックスの左に配置されます。

   

readOnly: 

true に設定されている場合、editText コントロールにテキストをコピー、貼り付け、あるいは入力ができません。 false に設定されている場合、または省略されている場合、editText コントロールにテキストを入力、コピーおよび貼り付けができます。

   

プロパティ:

<edittext>.text String 

編集ボックスのテキストです。パラメータに複数のテキスト行を指定するには、改行復帰(¥r )と改行(¥n )の両方のシーケンスを指定してください。たとえば、「最初の行 ¥r¥n次の行」とします。

   

<edittext>.caption String 

編集ボックスの横にあるオプションのキャプションのテキストです。

   

<edittext>.bold Boolean 

true に設定した場合、テキストは太字で表示されます。 false に設定した場合、テキストは太字でない、標準の形式で表示されます。

   

<edittext>.width Integer 

edittext ウィンドウの幅をピクセル単位で取得/設定します。

   

<edittext>.height Integer 

edittext ウィンドウの高さをピクセル単位で取得/設定します。

   

<edittext>.readOnly 

true に設定されている場合、editText コントロールにテキストをコピー、貼り付け、あるいは入力ができません。 false に設定されている場合、または省略されている場合、editText コントロールにテキストを入力、コピーおよび貼り付けができます。

   

イベント

on <edittext> changed <arg> do <expr> 

編集ボックスのテキストをユーザが変更するたびに呼び出されます。<arg> には、編集ボックスの新しいテキストが入ります。

   

on <edittext> entered <arg> do <expr> 

ユーザが編集ボックスにテキストを入力し、[Enter]または[Tab]を押してフィールドの外へカーソルを移動したときに呼び出されます。引数 <arg> には、編集ボックスの新しいテキストが入ります。

警告:

edittext の .height を 18 ピクセル以上に指定した場合、 on entered イベント ハンドラは、この edittext が複数行モードになるため、呼び出されません。

単一行モードでは、編集ボックスに文字列を入力して[Enter]を押した場合、1 文字ごとまたは[Enter]に対して 1 回、 on changed ハンドラが呼び出されます。 on entered ハンドラは、[Enter] に対して 1 回だけ呼び出されます。

複数行モードの場合、[Enter]キーストロークによって「 on entered 」ハンドラが呼び出されなくなりますが、編集ボックスに新しい行が挿入されます。

もちろん 「on changed」 ハンドラは呼び出されます。これらのハンドラは、キーストロークのたびに呼び出されます。

複数行の editText 項目の場合は、[Tab]キーを押したり、編集ボックスの外をクリックして、編集ボックスがキーボード フォーカスを 失った ときに、「on entered」ハンドラが呼び出されます。

例:

rollout boxCreator "Box Creator"
(
--define an edittextwith width 100 and the label on top:
edittext prefix_txt "Name prefix:" fieldWidth:200 labelOnTop:true
--If the user entered a new name...
on prefix_txt entered txt do
(
--And the name is not the empty string,
if txt != "" do
(
--Create a new box at a random position
--somewhere between the given coordinates:
new_obj = box pos:(random [-100,-100,-100] [100,100,100])
--Set the name of the new object to the prefix entered,
--but add unique suffix to avoid duplicate names:
new_obj.name = (uniquename txt)
--And finally clear the editText for a new entry
--by assigning an empty string to the text property:
prefix_txt.text = ""
)
)
)
createDialog boxCreator 300 30 --create a Dialog from the rollout
 

3ds Max 2015 から、[Esc]キーを押すと、フォーカスが editText コントロールからその親ウィンドウに移動するようになりました。

関連事項