Я зрозумів це.
Якщо натиснути клавішу зі стрілкою праворуч за кілька мілісекунд до того, як з'явиться діалогове вікно, тоді default answer
не буде вибрано значення, а миготливий курсор буде розміщений після тексту за замовчуванням.
Ви можете виконати цю дію в AppleScript так:
-- Unselect the “default answer” in an input dialog:
tell application "System Events"
key code 124 -- right arrow key
end tell
display dialog "Enter a keyword:" default answer "I do not want this text to be highlighted. "
Теоретично зазначене рішення не повинно працювати. Теоретично натискання клавіш повинно починатись і завершуватися перед початком display dialog
команди. Але цей метод діє з будь-якої причини.
Примітка. Цей метод не працюватиме, якщо ви вставите key code 124
перед першим діалоговим вікном вашого файлу AppleScript. У цьому випадку мій вище код не буде працювати так, як бажано, і default answer
текст залишиться обраним. (Це може ввести в оману справно, якщо ви просто запускаєте код AppleScript з Script Editor.app або Automator.app, але він не працюватиме належним чином, якщо ви запускаєте файл .scpt через швидкі сценарії, osascript
у Terminal.app або будь-який інший метод.)
Однак якщо display dialog
мова йде про другий, третій або п'ятдесятий діалог у файлі AppleScript, моє рішення працює правильно. Не запитуйте мене, чому це не працюватиме в першому діалоговому вікні (тому що я не знаю).
Отже, у вас немає іншого вибору, як переставити діалогові вікна файлу AppleScript, щоб у першому діалоговому вікні не було потрібного default answer
.
Одне рішення, якщо у вашому початковому діалоговому вікні має бути default answer
невибраний параметр, - це вставити діалогове вікно, яке автоматично продовжується після того, як пройде короткий проміжок часу. Це діалогове вікно слід вставити безпосередньо перед вищевказаним блоком. Це не елегантне рішення, але ось який код працює:
display alert "Please wait..." message "..." buttons ("") giving up after 1
-- I think that "1" is the minimum for "giving up after." I tried "0.5" and the dialog completely stalled.
Поки це не передує початковому діалогу сценарію, я особисто визнав свій метод надійним; він працює на моєму комп’ютері 100% часу.