在Windows中动态添加文本字段后,我正试图让我的Photoshop模式对话框正确地重绘窗口。
在Mac上没有问题,但在Windows上,字段看起来很糟糕,并且不会显示输入的内容。
我尝试了各种刷新/重绘方法,但似乎没有任何工作......
非常感谢任何帮助!
Screen shot of fields on Windows
以下是我的脚本的简化版本:
#target photoshop
var dlg = new Window('dialog', 'Dynamic Fields Test');
dlg.populateBtn = dlg.add('button', undefined, 'Add fields', {name:'ok'});
dlg.closeBtn = dlg.add('button', undefined, 'Close', {name:'cancel'});
// Create a panel to hold fields group
dlg.dynamicPanel = dlg.add('panel', undefined, "Dynamic Fields:");
dlg.dynamicPanel.orientation = 'column';
dlg.dynamicPanel.alignChildren = 'left';
// Create group to add fields to
dlg.dynamicPanel.fields = dlg.dynamicPanel.add('group', undefined, undefined);
dlg.dynamicPanel.fields.orientation = 'column';
dlg.populateBtn.onClick = function() { dlg.close(); }
dlg.populateBtn.onClick = function()
{
try
{
// Create 10 dynamic edit text fields
for(var i = 0; i < 10; i++)
{
dlg.dynamicPanel.fields[i] = dlg.dynamicPanel.fields.add('group', undefined, undefined);
dlg.dynamicPanel.fields[i].orientation = 'row';
dlg.dynamicPanel.fields[i].title = dlg.dynamicPanel.fields[i].add('statictext', undefined, 'Dynamic field' + i);
dlg.dynamicPanel.fields[i].textField = dlg.dynamicPanel.fields[i].add('edittext {text:"", characters:10, justify:"left"}');
}
// Try our best to refresh the window
dlg.layout.layout(true);
} catch(e) {
$.writeln(e + " - line: " + e.line);
}
}
dlg.center();
dlg.show();
&#13;