Активация текстового поля в диалоге

  • Автор темы Автор темы Cornet
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Cornet

Участник
Топикстартер
Сообщения
25
Реакции
2
Код:
with (myDialog = new Window ('dialog', 'Print', undefined)) {
    eText2 = add('edittext')
    eText2.size = [207, 21]
    eText2.active = true
    with (gGroup10 = add ('group')){
        size = [400, 29]
        btButton1 = add('button', undefined, 'Standart Print &Window', {alignment:['left', 'center']})
        btButton1.onClick = function () {close(0)}
        btButton2 = add('button', undefined, 'Print', {name: "ok"})
        btButton2.alignment = ['right', 'center']
        btButton3 = add('button', undefined, 'Cancel', {name: "cancel"})
    }
}
myDialog.show();
Вот код (точнее кусочек, но функциональный), в котором нужно сделать активным текстовое поле, и оно успешно делается. Но есть одно огромное НО: после нажатия на любую кнопку диалога фокус переключается на последнее активное перед индизайном приложение. если убрать строчку eText2.active = true — фокус нормально возвращается индизайну.
P.S. Условия запуска: из панели скриптов Indesign CC, Windows 7 и 8
 
Может быть вот эта ф-ция?
reveal()
appspec.reveal(file)
file - A File object or string specifying a file that can be opened in the target application.
Gives the target application the operating-system focus, and, if the specified file is open in that
application, brings it to the foreground. Returns undefined.

(см. JAVASCRIPT TOOLS GUIDE page 169 Cross-DOM functions )
 

Не по теме:
Прочтя в черноморской вечерке объявление « Сд. пр. ком. в уд. в. н. м. од. ин. хол.» и мигом сообразив, что объявление это означает — «Сдается прекрасная комната со всеми удобствами и видом на море одинокому интеллигентному холостяку», Остап подумал:.. (©):)
 
  • Спасибо
Реакции: dumbm1
Да, не срабатывает :(
Вот, вроде, нашёл тему на Адобовском форуме, где говорится, что это баг (потеря фокуса Индизайном при закрытии ScriptUI окна), начиная с CС версии InDesign для PC:
https://forums.adobe.com/thread/1599516
 
Последнее редактирование:
Прошу прощения, немного переписал код (with убрал), но вот так вроде фокус не пропадает:
Код:
//@target indesign

var targ = "indesign";

var dial = new Window ( 'dialog', 'Print', undefined );

dial.eText2 = dial.add ( 'edittext' );
dial.eText2.size = [ 207, 21 ];
//dial.eText2.active = true;

var gr10 = dial.add ( 'group' )
gr10.size = [ 400, 29 ];

dial.btButton1 = gr10.add ( 'button', undefined, 'Standart Print &Window', { alignment: [ 'left', 'center' ] } );
dial.btButton1.onClick = function () {dial.close ( 0 )};

dial.btButton2 = gr10.add ( 'button', undefined, 'Print', { name: "ok" } );
dial.btButton2.alignment = [ 'right', 'center' ];

dial.btButton3 = gr10.add ( 'button', undefined, 'Cancel', { name: "cancel" } );

// вот что добавил
dial.onActivate = function () {
  dial.eText2.active = true;
}

dial.show ();
 
Последнее редактирование модератором:
  • Спасибо
Реакции: Cornet

Не по теме:
Прочтя в черноморской вечерке объявление « Сд. пр. ком. в уд. в. н. м. од. ин. хол.» и мигом сообразив, что объявление это означает — «Сдается прекрасная комната со всеми удобствами и видом на море одинокому интеллигентному холостяку», Остап подумал:.. (©):)

Не по теме:
Намёк очень порадовал, спасибо, исправлюсь '))'
 
@dumbm1, большое вам человеческое СПАСИБО! Вы гений :)
 
Статус
Закрыто для дальнейших ответов.