#javascript #adobe #extendscript
#javascript #саман #расширенный скрипт #adobe #extendscript
Вопрос:
Я использую руководство Питера Карела по динамическому созданию пользовательского интерфейса, и я хочу заполнить выбранный текст редактирования вводом с клавиатуры. Поскольку все тексты редактирования создаются на лету, как мне проверить, какой из них выбран? Моя функция отлично работает в первом, но не в следующем поле
var win = new Window ("dialog");
var maingroup = win.add ("panel {orientation: 'column'}");
add_row (maingroup);
var show_btn = win.add ("button", undefined, "Save presets");
show_btn.onClick = function () {
var txt = "";
for (var n = 0; n < maingroup.children.length; n ) {
txt = maingroup.children[n].edit.text "n";
}
alert ("Rows: n" txt);
}
win.show ();
function add_row (maingroup) {
var group = maingroup.add ("group");
group.statictext = group.add ("statictext", undefined, "Left-click ");
group.edit = group.add ("edittext", ["", "", 200, 20], "Click here and press any key");
group.plus = group.add ("button", undefined, " ");
group.plus.onClick = add_btn;
group.minus = group.add ("button", undefined, "-");
group.minus.onClick = minus_btn;
group.index = maingroup.children.length - 1;
group.edit.onActivate = function(){
win.addEventListener ("keydown", function (kd) {pressed (kd)});
function pressed (k) {
if(k.keyName === "Enter"){
group.edit.text = "Enter";
}
}
}
win.layout.layout (true);
}
function add_btn () {
add_row (maingroup);
}
function minus_btn () {
maingroup.remove (this.parent);
win.layout.layout (true);
}
Ответ №1:
Это должно сработать, если вы добавите прослушиватель событий в группу, а не во все приложение.
ie.
win.addEventListener («нажатие клавиши», функция (kd) {нажата (kd)});
заменяется на
group.addEventListener («нажатие клавиши», функция (kd) {нажата (kd)});
Комментарии:
1. Я заметил, что через 10 минут после публикации вопроса. Извините за ошибку новичков. Спасибо!