0

今回は(できれば)シンプルなものを用意しました。Adobe InDesign CS6 の ExtendScript でプログラムされた ScriptUI ウィンドウがあります。これには、StaticText コントロールが含まれています。このダイアログ ウィンドウがユーザーに表示された後、ユーザーのアクションに基づいて StaticText コントロールのテキストを変更したいと考えています。これが私の問題の非常に単純化されたバージョンです:

var w = new Window("dialog");
    var t = w.add("statictext", undefined, "Hello");

w.show();

t.text = "Good evening";

上記の例では、「こんにちは」が「こんばんは」に変わることはありません。ただし、プログレス バー コントロールをこのウィンドウに追加し、StaticText コントロールと共に定期的に更新すると、テキストを変更できますが、2 行目が元の行よりも長い場合、テキストが切り詰められることがわかりました。文章。

あたかも StaticText コントロールの幅が作成時に設定され、ウィンドウが表示された後は決して変更できないかのようです。これが単に ScriptUI の制限である場合は、お知らせください。対処します。それ以外の場合は、その StaticText を動的に変更し、切り捨てられることなく長いテキスト行を受け入れるためにできることがあるかどうか教えてください。ありがとう!

4

2 に答える 2

0

これは私が通常使用する構造です [編集: 実際には、これはそれを少しよく示しています]:

//global:
var n=1;
//////////////////////////

function doTextChange(target, newText) {
    target.text = newText;
}

var win = new Window('dialog', 'dialog',[300,100,645,396]);
var w = buildUI();
if (w != null) {
    w.show();
}

function buildUI() {
    if (win != null) {
         win.t = win.add("statictext", [14,15,314,37], "Hello");
         win.closeBtn = win.add('button', [240,210,320,232], 'Close', {name:'Cancel'});
         win.changeBtn = win.add('button', [240,210+33,320,232+33], 'Change', {name:'Cancel'});
         win.closeBtn.onClick = function () { this.parent.close(1) };
         win.changeBtn.onClick = function () { n++;doTextChange(  win.t, "Good evening " + n);};
    }
    return win
}
于 2013-12-28T06:10:13.997 に答える