В моем скрипте для Photoshop CC 2015 (Windows 10), написанном на JavaScript, я обрабатываю все слои активного документа в и хотите показать диалог настройки на каждом шаге.Photoshop ScriptUI: Показать диалоговое окно, закрыть его, показать его снова дает пустое окно полного размера
Для упрощения рассмотрим следующий рабочий пример. Окно вне цикла, так и среди других шагов, которые раздели здесь, окно отображается один раз каждый шаг в цикле:
#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» появляется кнопка, как и ожидалось. Вы можете закрыть его, нажав кнопку «ОК». Но каждый последующий w.show()
создает пустое окно, которое почти заполняет весь экран, без каких-либо элементов управления. Его можно закрыть только клавишей ESC.
Я попробовал переопределить событие b.onClick
и вручную позвонить по номеру close()
, но это ничего не изменило.
При проверке переменной w
, то очевидно, что bounds
соответственно location
и size
каким-то образом изменилось. Я попытался сбросить эти значения до их предыдущего состояния, и размер окна будет восстановлен. Однако кнопка все еще не видна.
Я что-то упустил? Как я могу заставить диалоговое окно отображаться правильно несколько раз?
Спасибо! Оно работает! Я не знал, что 'close()' уничтожает окно. – Flo
На самом деле я не нашел в этом никаких намеков в официальных руководствах или других источниках. Это нужно добавить ... – Flo