10.9 Изменения

Эта статья описывает изменения в AppleScript и связанных инструментах в Индивидуалистах OS X v10.9.

Улучшения

AppleScript

Библиотеки сценария: можно теперь использовать сценарий в качестве библиотеки сценария и использовать обработчики и свойства, которые это определяет из любого другого сценария, делая существенно проще снова использовать код. Библиотеки могут также использовать AppleScript/Objective-C и определить их собственную терминологию.

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

Уведомления: Сценарии могут теперь отправить уведомления с помощью нового display notification команда в Стандартных Дополнениях.

Чередованный Синтаксис Параметра: AppleScript теперь поддерживает синтаксис чередованного параметра для обработчиков, которые могут сделать обработчики позиционного параметра проще читать: например, on doThis:a withThat:b определяет обработчик с помощью двух параметров, a и b. Чередованный синтаксис может использоваться в любом сценарии, но особенно полезен для вызова методов Objective C с AppleScriptObjC. В скомпилированном сценарии AppleScript автоматически переведет старую позиционную форму с подчеркиваниями (такой как its doThis_withThat_(a, b)) к чередованной форме (its doThis:a withThat:b), и чередованная форма появится как старая позиционная форма, если открыто в более старой системе.

Для получения дополнительной информации на новых функциях языка AppleScript, посмотрите Руководство по Языку AppleScript.

Редактор AppleScript

Документы в Облаке: Редактор AppleScript теперь поддерживает сохраняющие документы сценария к iCloud; любые такие документы будут автоматически синхронизироваться между всеми компьютерами, совместно использующими ту же учетную запись iCloud.

Подписывание кода: Экспорт Редактора AppleScript … команда может теперь подписать экспортируемые файлы с Вашими Идентификационными данными Разработчика. Это занимает место процедуры, описанной в 10,8 примечаниях при Привратнике и Подписании Апплетов.

Исправления ошибок

Форматирование по умолчанию перечисляемых значений изменилось для создания их более визуально отличными от свойств. [6778154]

osascript(1) теперь “процесс” элемента UI и может поэтому вывести на экран его собственный UI, такой как использование display dialog; сообщение другого приложения, такого как Системные события больше не необходимо. [12365409]

Получение last word из строки больше не пропускает память. [12959927]

Отрицание числовой строки такой как "4.1" теперь приводит к корректному результату. [13599507]

Примечания совместимости

Доступность

Функции доступности в Индивидуалистах OS X, включая комплект Процессов Системных событий, больше не имеют единственный переключатель, чтобы включить или отключить их в масштабе всей системы (флажок «Enable access for assistive devices»). Приложениям нужно теперь индивидуально открыть доступ для использования Доступности с помощью предпочтительной области Безопасности и Конфиденциальности в Установках системы. Если несанкционированное приложение попытается использовать Доступность, то оно перестанет работать. Система представит диалоговое окно, направляющее пользователя к надлежащему месту в Установках системы; после того, как утвержденный, ранее отклоненная функция будет работать.

Если апплет AppleScript использует, например, системные события приписывают все использование функций Accessibility к приложению, вызывая его, поэтому UI elements, апплет должен быть авторизован, не Системные события. Системные события UI elements enabled свойство и Утилита AppleScript GUI Scripting enabled если вызывающая сторона разрешена использовать Доступность, свойство все еще доступно, но теперь только для чтения, и скажет Вам.

Апплеты, использующие функции Accessibility, не сохранят свои свойства, когда выполнено. Это вызвано тем, что как системные дорожки, каким приложениям открывают доступ: апплеты, сохраняющие их свойства, изменяют свое собственное содержание для этого, который заставляет их обратиться к системе как различное приложение, которое должно быть повторно авторизовано. Если у Вас есть апплет, требующий и Доступности и персистентных значений свойств, можно особенно подписать ее таким образом, что она будет все еще работать, не нуждаясь в постоянной переавторизации; посмотрите http://support.apple.com/kb/HT5914 для подробных данных.

Разработчик отмечает

Приложения Scriptable

Значение OSAScriptingDefinition Ключ Info.plist может теперь быть базовым именем sdef файла; «.sdef» расширение больше не требуется. [12909256]

Поигравшие в песочнице приложения могут теперь скомпилировать сценарии, предназначающиеся для других приложений, даже если целевое приложение не будет в /Applications. Для Вашего приложения будет нужно надлежащее право, чтобы скомпилировать и выполнить сценарий. [13042006]

Сценарии дополнений

В сценариях то использование use scripting additions, AppleScript может оптимизировать событие Apple, посылающее за некоторыми дополнительными командами сценариев, автоматически устранение двойного - отправляет описанный в Сценариях Дополнительной Безопасности. В настоящее время это может выполнить эту оптимизацию для любой дополнительной команды сценариев с a Context значение Any в его определении Info.plist: для Стандартных Дополнений это покрывает ASCII character, ASCII number, offset, random number, и round. Эта оптимизация, как ожидают, покроет больше случаев в будущем; для лучшей производительности удостоверьтесь, что Ваше дополнение сценариев имеет самый строгий возможный контекст. Для получения дополнительной информации при записи дополнений сценариев и значении различных значений контекста, посмотрите Технические замечания 1164, Пишущий сценарий Дополнений для Mac OS X.

Библиотеки

Для отладки библиотеки и загрузки платформы определите переменную окружения ASDebugLibraryLoads. AppleScript тогда зарегистрирует каждый раз, когда он загружает библиотеку сценария или платформу:

AppleScript Editor[70986] <Notice>: AppleScript loaded library into component 0x810011: /Users/somebody/Library/Script Libraries/Map Window.scptd
AppleScript Editor[70986] <Notice>: AppleScript loaded framework for component 0x810012 OSAID(3): /System/Library/Frameworks/AppKit.framework
AppleScript Editor[70986] <Notice>: AppleScript referenced loaded framework for component 0x820011 OSAID(1): /System/Library/Frameworks/AppKit.framework

Эти сообщения регистрируются к средству ASL com.apple.AppleScript.

10.9.2 Изменения

Сценарии, работающие в Редакторе AppleScript, Меню Сценария, апплетах сценария, и osascript(1) теперь освобождены от Дремоты Приложения и больше не должен замедлять если не выполнение в frontmost приложении. Сторонние приложения, выполняющие незавершенные сценарии, все еще имеют право на Дремоту Приложения. [1560184, 1560275]

Диалоговые окна в апплетах сценария теперь работают правильно с инструментами Accessibility, такими как VoiceOver. [15328639]

Основные команды редактирования (Сокращение, Вставка, и т.д.) теперь работают правильно в диалоговых окнах, выполненных из Меню Сценария. [15650250]

do shell script with administrator privileges больше не ограничивается 255 вызовами в единственном сценарии. [15620418]

Системные события make new property list item команда теперь работает правильно при создании списка или записи. [15212879]

10.9.3 Изменения

Системные события больше не инициируют диалоговое окно доступа Доступности при попытке использовать a process не существующий объект. [16166963]

10.9.2 не был бы фоновые задачи, выполненные с do shell script with administrator privileges и всегда ожидал бы, пока задача не вышла; это теперь работает правильно снова. [16213937]