Photoshop ScriptUI:显示一个对话框 window,关闭它,再次显示它给出一个空的完整尺寸 window
Photoshop ScriptUI: Show a dialog window, close it, show it again gives an empty full size window
在我用 JavaScript 编写的 Photoshop CC 2015 (Windows 10) 脚本中,我正在循环处理活动文档的所有图层,并希望在每个图层中显示一个设置对话框步骤。
为简化起见,采用以下工作示例。 window 在循环外定义,在此处剥离的其他步骤中,window 在循环中的每一步显示一次:
#target photoshop
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK');
for (var i = 0; i < 3; i++) {
// other code
w.show();
// other code
}
当您执行它时,会出现一个只有一个 "OK" 按钮的小对话框 window,正如预期的那样。您可以使用 "OK" 按钮关闭它。 但是每个连续的 w.show()
都会产生一个几乎填满整个屏幕的空白 window,没有任何控件。 它只能使用 ESC 键关闭。
我尝试覆盖 b.onClick
事件并手动调用 close()
,但这并没有改变任何东西。
检查 w
变量后,很明显 bounds
和 location
和 size
不知何故发生了变化。我尝试将这些值重置为它们以前的状态,并且 window 大小已恢复。但是,该按钮仍然不可见。
我错过了什么吗?如何让对话框 window 多次正确显示?
试试这个代码,它适用于我的 Photoshop CC + OSX。
w.close()
销毁对话框window,所以你应该重新创建。
按下名为 'ok' 的按钮,按下 return 键与 w.close()
相同。
#target 'photoshop'
for (var i = 0; i < 3; i++) {
var w = W();
$.writeln(w.show());
}
function W () {
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK', {name:'ok'});
return w
}
在我用 JavaScript 编写的 Photoshop CC 2015 (Windows 10) 脚本中,我正在循环处理活动文档的所有图层,并希望在每个图层中显示一个设置对话框步骤。
为简化起见,采用以下工作示例。 window 在循环外定义,在此处剥离的其他步骤中,window 在循环中的每一步显示一次:
#target photoshop
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK');
for (var i = 0; i < 3; i++) {
// other code
w.show();
// other code
}
当您执行它时,会出现一个只有一个 "OK" 按钮的小对话框 window,正如预期的那样。您可以使用 "OK" 按钮关闭它。 但是每个连续的 w.show()
都会产生一个几乎填满整个屏幕的空白 window,没有任何控件。 它只能使用 ESC 键关闭。
我尝试覆盖 b.onClick
事件并手动调用 close()
,但这并没有改变任何东西。
检查 w
变量后,很明显 bounds
和 location
和 size
不知何故发生了变化。我尝试将这些值重置为它们以前的状态,并且 window 大小已恢复。但是,该按钮仍然不可见。
我错过了什么吗?如何让对话框 window 多次正确显示?
试试这个代码,它适用于我的 Photoshop CC + OSX。
w.close()
销毁对话框window,所以你应该重新创建。
按下名为 'ok' 的按钮,按下 return 键与 w.close()
相同。
#target 'photoshop'
for (var i = 0; i < 3; i++) {
var w = W();
$.writeln(w.show());
}
function W () {
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK', {name:'ok'});
return w
}