![]() |
В этой части я расскажу про еще одно интересное средство разработки приложений для Mac OS X - скриптового языка Apple Script.
Apple Script разрабатывался чтобы применяться конечными пользователями, а не программистами, и позволить им контролировать приложения и документы, с которыми они работают. Например, с помощью Apple Script можно открыть фотографию в редакторе изображений, обрезать до нужного размера, записать ссылку на фото в текстовый файл и т.п. В отличии от того, как пользователь через GUI взаимодействует с приложением, например впечатывает информацию в текстовые поля приложения для работы с базами данных, AppleScript работает совсем иначе, скрипт использует внутреннюю объектную модель приложения, тем самым внося значения в саму базу данных. Это означает, что во время работы скрипта приложение даже не обязательно показывать. Естественно такая модель работы требует того, чтобы ваше приложение было написано с поддержкой Apple Script. Каждое приложение, которое понимает Apple Script, публикует поддерживаемые комманды в Apple Event словаре, который используется, чтобы определить допустимые комманды. Язык, очень похожий на натуральный Движок Apple Script комбинирует глаголы и существительные, чтобы выполнить действия. Например, чтобы напечатать документ, страницу из документа или опеределенный фрагмент, вместо вызова функций printPage, printDocument, printRange, мы берем глагол print и добавляем нужное существительное: Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Также скрипт можно сохранить чтобы в дальнейшем использовать как полноценное приложение. Обработчик события запуска должен находиться внутри следующей конструкции: Цитата:
Если бросить на файл со скриптом пару других файлов, то при запуске будет использован следующий обработчик: Цитата:
http://habrahabr.ru/pictures/00/00/0...picture_34.png В качестве редактора/интерпритатора исаользуется ScriptEditor.app http://habrahabr.ru/pictures/00/00/0...picture_30.png Чтобы открыть Apple Event словарь надо в меню Script Editor нажать File=> Open Dictionary, откроется окно со списком приложений http://habrahabr.ru/pictures/00/00/0...picture_35.png выбираем нужное(например iTunes) и клацаем OK. Открылось окно с описанием комманд для нужного нам приложения http://habrahabr.ru/pictures/00/00/0...picture_36.png А теперь напишем простенькое Cocoa приложение, с помощью которого можно контроллировать iTunes Открываем XCode, File=>New Project, Cocoa Application => в Project Name пишем iTunes_Controller. Добавляем новый Objective-C class "controller". В файле controller.h пишем Цитата:
А теперь клацаем по MainMenu.nib и попадаем в InterfaceBuilder. Добавляем в окно MainMenu.nib новый NSObject и назначем ему класс controller: http://habrahabr.ru/pictures/00/00/0...picture_37.png Затем разместим на форме четыре кнопки с надписями "next","play","pause","previous" и соеденим их с соотв. обработчиками из класса controller: http://habrahabr.ru/pictures/00/00/0...picture_38.png Сохраняем все и возвращаемся в XCode. В файле controller.m пишем следующее: - (void) executeAppleScriptNSString*)script { @try { NSAppleScript *ascript = [[NSAppleScript alloc] initWithSource:script]; [ascript executeAndReturnError:nil]; [ascript release]; } @catch (NSException * e) { NSLog(@"exception:%@",e); } } - (void) nextClickid)sender { [self executeAppleScript"tell application \"iTunes\" \n next track \n end tell"]; } - (void) prevClickid)sender { [self executeAppleScript"tell application \"iTunes\" \n previous track \n end tell"]; } - (void) playClickid)sender { [self executeAppleScript"tell application \"iTunes\" \n play \n end tell"]; } - (void) pauseClickid)sender { [self executeAppleScript"tell application \"iTunes\" \n pause \n end tell"]; } В принципе, я думаю, что этого достаточно чтобы получить общее представление о Apple Script и попробавть что-нибудь на нем написать |
| Время: 02:52 |