Приложение, созданное с помощью Script Editor, игнорирует выбранный элемент во всплывающем меню «Сообщить текущему приложению».

2

Рассмотрим следующую программу AppleScript:

tell the application "TextEdit" to make new document

Я сохранил этот сценарий как приложение и успешно запустил его, дважды щелкнув значок приложения.

Затем я упростил сценарий, установив во всплывающем меню «Сообщить текущее приложение» значение «TextEdit» и заменив программу следующей строкой:

make new document

Упрощенная программа AppleScript

Я сохранил скрипт и запустил его из редактора скриптов. Все работало хорошо. Затем я запустил приложение, дважды щелкнув значок приложения, но теперь появилось следующее сообщение об ошибке:

Не могу сделать документ класса
Не могу сделать документ класса. (-2710)

Не могу сделать сообщение об ошибке документа класса

В чем причина такого поведения?

Эван Аад
источник

Ответы:

1

Вы не можете создать приложение AppleScript, которое содержит только одну строку кода, так make new documentкак оно не будет выполняться в том же контексте, что и в Script Editor, сделав выбор из меню приложения «Tell».

В качестве приложения AppleScript вам необходимо явно указать соответствующее приложение make new document.

Пример: tell application TextEdit to make new document

Если вы только кодируете make new documentи сохраняете его как, например, Code Test.appтогда make new documentвыполняется как tell current application to make new documentили более буквально в этом случае, tell application "Code Test" to make new documentи Code Test.appне хватает возможности создать новый документ и, следовательно, вывести ошибки.

Находясь в редакторе сценариев, меню приложения «рассказать» - это удобный ярлык, позволяющий избежать полной распечатки tell application ...и предназначенный только для тестирования кода. Он не переводится в буквальный код, который вы должны полностью ввести, чтобы быть полностью функциональным в соответствующем контексте, чтобы сохранить его в виде приложения (или сценария).

user3439894
источник
Благодарю. Я считаю, что это плохой выбор дизайна GUI. На мой взгляд, поведение должно было перенести на приложение.
Эван Аад
1
@Evan Aad, я согласен, Script Editor не очень хорошо спроектирован и не имеет многих функций, присутствующих в других IDE программирования, однако Руководство по языку AppleScript закладывает основы для правильного написания кода, независимо от того, какой редактор используется.
user3439894
Какие еще IDE доступны для AppleScript? Есть ли что-нибудь, что вы бы порекомендовали?
Эван Аад