на чем пишут программы для mac os

Создание программ для Mac OS X. Часть 3: Apple Script

В этой части я расскажу про еще одно интересное средство разработки приложений для Mac OS X — скриптового языка Apple Script.

Apple Script разрабатывался чтобы применяться конечными пользователями, а не программистами, и позволить им контролировать приложения и документы, с которыми они работают. Например, с помощью Apple Script можно открыть фотографию в редакторе изображений, обрезать до нужного размера, записать ссылку на фото в текстовый файл и т.п.

В отличии от того, как пользователь через GUI взаимодействует с приложением, например впечатывает информацию в текстовые поля приложения для работы с базами данных, AppleScript работает совсем иначе, скрипт использует внутреннюю объектную модель приложения, тем самым внося значения в саму базу данных. Это означает, что во время работы скрипта приложение даже не обязательно показывать. Естественно такая модель работы требует того, чтобы ваше приложение было написано с поддержкой Apple Script.

Каждое приложение, которое понимает Apple Script, публикует поддерживаемые комманды в Apple Event словаре, который используется, чтобы определить допустимые комманды.

Язык, очень похожий на натуральный

в подкасте Радио-Т ведущий bobuk говорил что скрипт, написанный на языке Apple Script читается как обычный английский текст. В принцие он прав, т.к. это и есть одна из основополагающих особеннойстей Apple Script.

Движок Apple Script комбинирует глаголы и существительные, чтобы выполнить действия. Например, чтобы напечатать документ, страницу из документа или опеределенный фрагмент, вместо вызова функций printPage, printDocument, printRange, мы берем глагол print и добавляем нужное существительное:

print page 1
print document 2
print pages 1 thru 5 of document 2

tell application «iTunes»
playpause
end tell

tell application «Microsoft Word» to quit

tell application «QuarkXPress»
tell document 1
tell page 2
tell text box 1
set word 5 to «Apple»
end tell
end tell
end tell
end tell

Использовать иерархичность можно следующим образом:

pixel 7 of row 3 of TIFF image «my bitmap»

set pix to 72
set answer to text returned of (display dialog «Enter in the number of inches» default answer «1»)
display dialog answer & «in = » & (answer * pix) & «px»

при исполнии покажет диалоговое окно с запросом ввода кол-ва дюймов, потом это значение конвертируется в пиксели и результат показывается в следующем окне.

Также скрипт можно сохранить чтобы в дальнейшем использовать как полноценное приложение. Обработчик события запуска должен находиться внутри следующей конструкции:

В принципе, его можно и не писать, тогда при запуске обработка скрипта начнется с первой строки в файле.

Если бросить на файл со скриптом пару других файлов, то при запуске будет использован следующий обработчик:

on open theItems
— что-нибудь делаем с этими самыми theItems
end open

Средстав для написания скриптов лежат в /Applications/AppleScript
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
В качестве редактора/интерпритатора исаользуется ScriptEditor.app
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Чтобы открыть Apple Event словарь надо в меню Script Editor нажать File=> Open Dictionary, откроется окно со списком приложенийна чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
выбираем нужное(например iTunes) и клацаем OK. Открылось окно с описанием комманд для нужного нам приложенияна чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

А теперь напишем простенькое Cocoa приложение, с помощью которого можно контроллировать iTunes
Открываем XCode, File=>New Project, Cocoa Application => в Project Name пишем iTunes_Controller. Добавляем новый Objective-C class «controller». В файле controller.h пишем

interface controller: NSObject <
>
— (IBAction) nextClick:(id)sender;
— (IBAction) prevClick:(id)sender;
— (IBAction) pauseClick:(id)sender;
— (IBAction) playClick:(id)sender;
— (void) executeAppleScript:(NSString*)sctript;
end

В принципе, в этом коде ничего секретно-военного нету. Просто пишем класс, с помощью которого и будем контролировать iTunes. Функции *Click — это обработчики нажатия по соответствующим кнопочкам на форме. А executeAppleScript:(NSString*)sctript — функция, которая будет исполнять скрипт в параметре script.

А теперь клацаем по MainMenu.nib и попадаем в InterfaceBuilder. Добавляем в окно MainMenu.nib новый NSObject и назначем ему класс controller:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Затем разместим на форме четыре кнопки с надписями «next»,«play»,«pause»,«previous» и соеденим их с соотв. обработчиками из класса controller:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Сохраняем все и возвращаемся в XCode. В файле controller.m пишем следующее:

— (void) executeAppleScript:(NSString*)script <
try <
NSAppleScript *ascript = [[NSAppleScript alloc] initWithSource:script];
[ascript executeAndReturnError:nil];
[ascript release];
>
catch (NSException * e) <
NSLog(@«exception:%@»,e);
>
>
— (void) nextClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n next track \n end tell»];
>
— (void) prevClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n previous track \n end tell»];
>
— (void) playClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n play \n end tell»];
>
— (void) pauseClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n pause \n end tell»];
>

В принципе в этом коде ничего сложного тоже нет. Единственная интересная вещь — класс NSAppleScript, с помощью объекта которого и выполняем скрипт. Подробнее про NSAppleScript можно почитать здесь.

В принципе, я думаю, что этого достаточно чтобы получить общее представление о Apple Script и попробавть что-нибудь на нем написать.

Источник

iOS-разработка: способы быстрого старта

Когда мы задумываемся о разработке под iOS, чаще всего в голове возникает пятизначная сумма входного порога: как минимум нужно iOS-устройство на последней версии ОС и Mac. Если вы уже пишете под iOS, вам наверняка известны альтернативные варианты, а если нет — посмотрите, вдруг пригодится? Приведенный ниже обзорный пост — как раз на этот случай. Под катом вы найдете довольно простую информацию, так что если хотите хардкорчика, вам не сюда!

Путь от Apple

Путь настоящего джедая тру iOS-разработчика лежит в плоскости следования идеям Apple. Свежий SDK, свежая же версия Xcode, документация от Apple по технологиям Apple, форумы разработчиков на технологиях Apple – если вдуматься, а что ещё нужно для создания отличного приложения, кроме толики времени? Польза очевидна: разработка идет самым близким к платформе и к идеологии Apple образом, с использованием всех новинок, предлагаемых Apple в текущем (и будущих) iOS API, так что постоянное изучение нового приносят больше хорошего, чем плохого.

Новинки Apple озвучивает регулярно. На последней конференции для разработчиков WWDC 2017 были показан новый SDK и новая версия среды для разработке Xcode. Список изменений довольно обширен (тем более в преддверии выхода iOS 11):

Xcode

Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!

В Xcode появилась поддержка Markdown. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
(Источник)

Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
(Источник)

Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
(Источник)

Из менее выделяющихся, но тем не менее полезных фич, можно назвать:

Swift 4

Это изменение стоит особняком. Все, кто уже пережил чувство «в Swift 2 было, в Swift 3 пропало?!», могут ощутить дежавю, но сейчас ожидаются изменения, скорее, в лучшую сторону (впрочем, замечу вполголоса, когда это было не так, по мысли авторов-то?)

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

«Гибридное», «не совсем нативное» приложение

Уточню: термин, вынесенный в заголовок, даже по сути своей не очень верен. Приложения, которые мы получим в результате, самые что ни на есть нативные в смысле того, что они исполняются на той же iOS, на том же железе, что и любое другое ПО для iOS, просто сам процесс разработки позволяет использовать не только предложенные Apple технологии и языки программирования. Если человек умеет писать, скажем, на JavaScript, и не хочет разбираться в Swift, то Apple ему ничем не поможет (кроме, конечно, хорошего учебника по Swift), а вот вариант написать, условно говоря, приложение на JavaScript, а потом запустить его на iOS, как если бы оно было написано в Xcode (получив, таким образом, некий «гибридный» вариант) существует, и вполне востребован.

Ionic

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Ionic – один из самых известных фреймворков для кросс-платформенной разработки. Он построен на базе Apache Cordova, что обеспечивает доступ к различным функциям устройства, таким как геолокация, push-уведомления, камера и прочим, и позволяет разработчикам создавать приложения для iOS и Android с веб-технологиями, такими как HTML, CSS и JavaScript.

В дополнение к фреймворку, Ionic может похвастаться целой экосистемой, облегчающей разработчикам-новичкам процесс изучения и вхождения. Ionic Cloud предоставляет разработчикам различные инструменты для управления, развертывания и масштабирования приложений на Ionic. Ionic Creator представляет собой визуальный редактор, который позволяет разработчикам быстро прототипировать и создавать мобильные приложения методом drag&drop. Наконец, существует Ionic View — бесплатное приложение для iOS и Android, которое позволяет разработчикам легко делиться своим Ionic-приложением с пользователями, тестерами и клиентами без необходимости развертывать приложение в магазине приложений конкретной мобильной платформы. Разработчики просто отправляют пользователям приглашение из приложения Ionic View, и как только оно принято, пользователь может загрузить и запустить конкретное приложение в своей копии Ionic View — так, как если бы приложение было установлено на его телефоне из магазина приложений.

Увы, есть и «ложка дегтя». Приложения, написанные с использованием Ionic, используют WebView, в результате мы получаем самое натуральное веб-приложение, со своей обычной (обычно не самой впечатляющей) скоростью работы. За счет этого трудно считать его подходящим для создания тяжелых приложений, таких, как игры, либо программы с интенсивным использованием графики. Разработка с Ionic требует хороших знаний Angular, по крайней мере при желании «выжать» из фреймворка как можно больше.

PhoneGap / Cordova

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac osPhoneGap исходно был создан компанией Nitobi. В 2011 году, Adobe приобретает Nitobi и бренд PhoneGap. Adobe затем передает одну из версий PhoneGap (назвав её Cordova), в Apache Foundation, оставив себе бренд PhoneGap и его как продукт. В результате Cordova можно рассматривать как движок, стоящий под капотом PhoneGap (а также некоторе другие гибридные фреймворки). PhoneGap, в свою очередь, добавляет к возможностям Cordova свои, дополнительные, функции.

PhoneGap во многих отношениях очень похож на Ionic. Он так же дает разработчикам возможность создавать кросс-платформенные приложения при помощи веб-технологий, и так же построен на базе Apache Codova. Однако PhoneGap не привязан к какому-то определенному Javascript-фреймворку, поэтому разработчики имеют бОльший выбор, на чем и как они будут создавать свои приложения. У PhoneGap имеется десктопное приложение, мобильное приложение, и облачный сервис под названием PhoneGap Build, который позволяет собирать и деплоить приложение.

Увы, подобно Ionic, PhoneGap использует WebView (который в iOS работает довольно медленно), так что со скоростью у приложений, созданных на базе этого фреймворка, дела не всегда обстоят блестяще.

Xamarin

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac osОснованная в 2011 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается. Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).

Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.

React Native

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac osПроект React Native появился на свет в Facebook, и построен на основе React. Наше JS-приложение крутится на встроенном в iOS движке: на нем выполняется код и производятся все манипуляции с нативными виджетами ОС. React Native сопоставим с Xamarin, при этом приложения, созданные с помощью React Native, очень похожи на нативные приложения iOS и Android (потому что они собственно, оперируют нативными UI-элементами).

Синтаксис React довольно прост, что облегчает изучение фреймворка, а Стандартная библиотека UI-компонентов в поставке React Native содержит много полезных компонентов, однако самым большим отличием React Native от других JavaScript-фреймворков называют возможность использования кода на на Objective-C и Swift (чаще для для улучшения производительности или более тонкого взаимодействия с мобильной платформой). На практике это означает, что разработчики могут использовать существующие собственные библиотеки в своих приложениях React Native.

Веб, чистый веб

Часто недооцениваемая возможность использовать веб-страницу как отдельное приложение тем не менее к нашим услугам: если нет особых проблем со связью, а приложение обладает несложной функциональностью (вывод таблицы данных, или вывод постоянно обновляемого списка), то нет причин не воспользоваться старым добрым веб-просмотром информации с сервера.

Разница между открытием той же страницы в браузере будет в оформлении экрана: элементы управления браузера (в т.ч. и адресная строка) будут спрятаны, а содержимое страницы окажется выведенным на весь экран устройства. Из неудобств нас, конечно, ждет довольно долгое время открывания такого «приложения» (что связано со скоростью ответа удаленного веб-сервера), но для ряда применений это, думаю, вовсе не проблема.

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

Если вы любите мобильную разработку так же, как любим ее мы, рекомендую обратить внимание на следующие доклады Mobius 2017 Moscow (да-да, в ноябре Мобиус едет в Москву, если вы еще не знали):

Источник

Создание программ для Mac OS X. Часть 2: средства разработки и создание простого приложения

В этой части я расскажу вам о средствах разработки приложений под Mac OS X Leopard. Скажу сразу, что буду рассматривать только те, которые предоставляются самой Apple. Другие IDE существуют, но они обычно кроссплатформенные (например Code::Blocks), так что рассказывать о них лучше не в этой статье.

Так вот, на диске с Лео идет инструментарий разработчика Mac OS X — набор необходимых программ и фреймворков для создания приложений. Устанавливается все это дело(приложения, документация, куча примеров, разные полезные утилиты, etc.) в папку /Developer.

После установки имеет 4 основных приложения для разработки:
1. XCode — основная IDE
2. Interface Builder — программа для создания интерфейсов прораммы, хотя ее возможности куда шире
3. Instruments — средство для слежения за программой
4. Dashcode — программа для создания виджетов для Dashboard

А теперь про эти приложения подробнее:
/*многие картинки кликабельны*/

Xcode

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

Xcode — основная среда разработки, есть все, что и положено для IDE. Расписывать все функции нет особого смысла, т.к. она не сильно отличается от Visual Studio или KDevelop. А вот про нововведения в версии 3.0 упомянуть стоит:

1.подсветка блоков кода:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
2. сворачивание(folding) блоков кода(наконец-то)
3. улучшеный(в сторону скорости работы) редактор кода
4. рефракторинг кода
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
5. поддержка Objective-C 2.0
6. Research Assistant — помощник, который исходя из выделенного текста пытается найти подходящую статью в Help и выводит в своем окне
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
7. показ ошибок, предупреждений, etc прямо в коде:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
8. снимки проекта. Очень удобная вещь, по нажатию клавиш Ctrl+Command+S текущий проэк сохраняется в отдельное место, и потом можно будет к нему вернутся, если что-нибудь намудрил, причем для каждого файла показывается разница между тем что было и что стало:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
9. Органайзер. Насколько я понял, это инструмент для управления множества проектов, также позволяет использовать Xcode для написания программ на неизвестных языках для него. Сам еще не разбирался что это, но нашел статью, в которой рассказывается про органайзер подробнее.

Interface Builder

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Скрывать не буду и скажу сразу, что IB — самый лучший инструмент для создания интерфейсов из мною опробованных. И не только потому, что простые и понятные интерфейсы в нем легко создавать, а потому, что IB это нечто большее чем редактор интерфейсов, с его помощью можно избавится от написания многих частей кода, связанных с интрефейсной частью. Звучит конечно непонятно, но на примере будет намного яснее(примеры будут в конце).

Для чего же используется IB в процессе создания программы? Только для раскидывания кнопочек по форме — нет. Одна из основных задач IB — связывать объекты друг с другом, с переменными в классе, с разными событиями и т.п.

Instruments

на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Instruments — средство для слежения за приложениями. Построен на порте под Mac OS X «DTrace tracing framework» из OpenSolaris. Само слежение проходит с помощью отдельных инструментов, которые хранятся в библиотеке и при необходимости перетаскиваются в главное окно. Изначально уже есть много инструментов, например инструмент для слежения за сетевой активностью, загрузкой процессора, чтения-записи на диск. Если нужного инструмента не хватает, то можно его создать самому:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

Dashcode

Я думаю из названия понятно для чего предназначена эта программа, а именно — создания виджетов для Dashboard. Баловался програмкой не долго, процесс создания виджета напомнил работу в Macromedia Flash. Вот сделал виджет для чтения rss хабра за секунд 10:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

Создание простого приложения средствами Xcode и Interface Builder

Как я и обещал, сейчас мы создадим простое приложение. Что оно будет делать? После ввода текста в поле редактирования и нажатия Enter выводить введенный текст на поле надписи(label). Предупрежу, что не буду подробно рассказывать почему что-то надо сделать именно так, мат.часть пойдет потом, сейчас — простое создание приложения без лишних вопросов.

Итак начнем:
открываем Xcode и выбираем в меню File => New Project, в появившемся окне отмечаем «Cocoa Application» и нажимаем Next:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Далее зададим имя проекта — habr_1 и где он будет хранится(у меня

/xcode/habr_1/):
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
после этого нажмем Finish и получим проект. Теперь нам нужно добавить класс, который будет реализовать то, что нам нужно. Для этого идем в меню File => New File… и выбираем Objective-C class и жмем Next. В следующем окне нас попросят задаять имя файла, так что пишем «controller»:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Теперь в окне проекта слева в папке Classes появились два файла: controller.h и controller.m. Откроем controller.h и напишем тоже, что и на картинке:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Теперь два раза кликнем по файлу MainMenu.nib, откроется Interface Builder и станет активным. Что мы видим: заготовку под окно, главное меню и окно, обозначающее что мы открыли MainMenu.nib. Нажмем в меню Tools => Library чтобы открыть библиотеку с объектами и Tools => Inspector чтобы видеть свойства этих самых объектов. Теперь нам надо добавить в MainMenu.nib объект, который будет представлять созданный нами класс «controller», так что в библиотеке находим объект NSObject(синий полупрозрачный кубик) и перетаскиваем его в окно с надписью MainMenu.nib:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Переименуем «Object» в «controller» для ясности. Теперь нужно объяснить этому кубику, что он представляет нужный нам класс. Для этого оставляя его активным переходим на вкладку «Identity»(вторя справа) в инспекторе и в выпадающем списке напротив надписи «Class» выбираем наш «controller»:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Теперь добавим на форму из Библиотеки поле редактирования и метку. Для поля редактирования в на вкладке «Attributes»(первая слева) в выпадающем списке напротив надписи «action» выберем «Sent On Enter Only». Должно получится примерно такое:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
А теперь начинается самое интересное, мы должны связать переменную «label» из класса с меткой и задать «setText:» в качестве сообщения, которое посылает текстовое поле при окончании редактирования. Свяжем метку с переменной label: сделаем активным наш объект «controller», зажмем Ctrl и левую кнопку мыши над синим кубиком и перенесем курсор на нашу метку, увиди следующюю картину:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
после отпускания лкм появляется вот такое окно(в нем будут все классовые переменные, которые по типу совпадают с тем, к чему мы пытаемся связать):
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
выбираем в нем единственную запись label. Все, теперь мы связали класовую переменную label и нашу метку на форме. Связывание полz редактирования с посылаемым ей сообщением проходит также, только перетягивать надо не с кубика на поле, а наоборот — с поля редактирования на объект controller.

Все, сохраняем MainMenu.nib(File => Save) и возвращаемся в Xcode.

В Xcode открываем файл controller.m и описываем реализацию сообщения:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

Сохраняем проект, нажимаем Build and Go и получаем готовое приложение:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Введем что-нибудь в поле редактирования и нажмем Enter, вот результат:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os

Мощь Interface Builder

А сейчас я покажу вам как IB может упростить жизнь и количество кода. Создадим почти приложение(почти потому, что откомпилировать в полноценное приложение). Что оно будет делать? Выводить состояние слайдера в поле редактирования и иметь кнопку для закрытия.

Итак начнем. Откроем Interface Builder, File => New, выбираем «Window» и клацаем «Choose», получаем окно «Untitled», обозначающее наше окно и заготовку окна, кидаем на нее горизонтальный слайдер, поле редактирования и кнопку, причем в свойствах обзываем ее «Close»:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Теперь проводим связь _от слайдера_к_полю_редактирования_, после отпускания лкм в выпадающем списке выбираем «takeDoubleValueFrom:»:
на чем пишут программы для mac os. Смотреть фото на чем пишут программы для mac os. Смотреть картинку на чем пишут программы для mac os. Картинка про на чем пишут программы для mac os. Фото на чем пишут программы для mac os
Аналогично свяжем кнопку с событием terminate: объекта «First Responder» из окна «Untitled»(красненький кубик с единичкой).

Теперь File => Simulate Interface, получаем прототип работоспособного приложения: при изменении положения слайдера изменяется число в поле редактирования, при нажатии на Close приложение закрывается.

Вот так просто можно избавить себя от написания многих строк кода.

А если кто еще не убедился в этом, то посмотрите это видео. В нем сам ОН(не, не RMS) рассказывает и показывает всю мощь Interface Builder(правда перед этим минут 30 пиара NextSTEP):

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *