Javascript 在已显示ScriptUI控件的窗口后更改该控件

Javascript 在已显示ScriptUI控件的窗口后更改该控件,javascript,window,adobe-indesign,extendscript,adobe-scriptui,Javascript,Window,Adobe Indesign,Extendscript,Adobe Scriptui,所以这次我有一个(希望)简单的例子。我在ExtendScript for Adobe InDesign CS6中编程了一个ScriptUI窗口。它包含一个StaticText控件。向用户显示此对话框窗口后,我想根据用户采取的某些操作更改StaticText控件的文本。下面是我的问题的一个非常简化的版本: var w = new Window("dialog"); var t = w.add("statictext", undefined, "Hello"); w.show(); t.

所以这次我有一个(希望)简单的例子。我在ExtendScript for Adobe InDesign CS6中编程了一个ScriptUI窗口。它包含一个StaticText控件。向用户显示此对话框窗口后,我想根据用户采取的某些操作更改StaticText控件的文本。下面是我的问题的一个非常简化的版本:

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

w.show();

t.text = "Good evening";
在上面的例子中,“你好”永远不会变为“晚上好”。然而,我发现,如果我向这个窗口添加一个进度条控件,并与StaticText控件一起定期更新它,它将允许文本更改,但是如果第二行比原始文本长,文本将被截断


这就好像StaticText控件的宽度是在创建时设置的,并且在显示其窗口后永远无法更改。如果这只是ScriptUI的一个限制,请告诉我,我会处理它。否则,请告诉我,如果有什么我可以做的,让静态文本动态更改,并接受更长的文本行而不被截断。谢谢

尝试将
多行
设置为

var w = new Window("dialog");
    var t = w.add("statictext", undefined, "Hello", {multiline:true});

w.show();

t.text = "Good evening";
这样可以防止文本在第一行之后被截断

您可以通过向文本字符串添加返回字符(
\r
\n
)来测试它:

t.text = "Good\revening"

这是我通常使用的结构 [编辑:事实上,这更能说明问题]:

//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
}

我很抱歉,但那不行。此外,无论如何,我并不真的希望文本是多行的。唯一的解决方案是使静态文本(和/或窗口)变宽,这样文本就不会被推到第二行。这不是我真正担心的问题。将文本推到第二行。永远不会创建第二行。在我的真实脚本中,包含这行文本的窗口非常宽;只是文本本身的宽度在创建时保持不变。因此,文本的左侧和右侧仍然有大量的空间,即使较长的文本行被截断,仍然会留下空间。如果我能管理一个屏幕抓图,我会把它贴在这里来说明。我目前正在做另一个项目,但我很快就会回到这个项目。首先,我特别需要了解一下您的代码。