Разработка для OS X, исходящая из iOS-фона

Я развиваюсь исключительно для iOS на протяжении нескольких лет и считаю себя достаточно компетентным с iOS и Objective C. Я хотел бы еще больше расширить свои навыки и перейти в сферу настольных приложений для OS X.

Учитывая очень разные парадигмы для обеих платформ, связанных с контроллерами представлений и контроллерами окон (чтобы назвать несколько), я изо всех сил стараюсь найти достойную отправную точку, чтобы намочить ноги, поскольку мои знания SDK iOS вызывают путаницу при чтении через документацию OS X.

Для меня основные классы для iOS были бы UIViewController (и это варианты, UINavigationController и UISplitViewController) и UIView. Чтобы справиться с этими задачами, изучение их подклассов (например, UIButton, UITextField) стало понятным, а также получить что-то на экране, чтобы обеспечить видимые результаты.

В настоящее время я понимаю, что NSViewController не обязательно совпадает с UIViewController. Кроме того, учитывая, что приложения OS X могут иметь несколько окон, UIWindowController совершенно чуждо мне, и я не понимаю, как это будет сидеть в иерархии приложения.

Будут ли какие-либо опытные ветераны OS X быть любезными, чтобы предложить, какие классы станут для меня самой полезной отправной точкой для чтения и игры? Что мне будет полезно в этот момент - найти, в какой области SDK я должен сосредоточить свои усилия, чтобы полностью различить различия между iOS и OS X.

Edit:

Я не прошу список руководств. Я бы предпочел, чтобы кто-то объяснил либо разницу между парадигмами для иерархии контроллеров множественного представления (iOS) для одной установки окна OS X и/или рекомендовал, какие классы лучше всего расследовать как отправную точку, чтобы получить что-то на экране как NSWindow и NSWindowController.

Ответы

Ответ 1

OS X довольно похож на iOS в том плане, что он также следует за концепцией MVC. Тем не менее, весь пользовательский интерфейс отличается тем, что OS X обычно работает с большим дисплеем и использует мышь и клавиатуру для ввода, поэтому отображение 1:1 между let say NSViewController и UIViewController невозможно, Обычно у вас есть оконный контроллер, который вроде бы действует так, как вы ожидаете, что ваш контроллер просмотра находится под iOS. Однако вместо перехода между контроллерами представлений, используя, например, a UINavigationController, вы либо представляете второе окно в виде модального листа, либо просто открываете его как панель или подобное.

Просто посмотрите на свое среднее приложение Mac, большинство вещей, которые под iOS требуют нескольких контроллеров просмотра и переходов между ними, работают только с одним окном, которое содержит все. Просмотр контроллеров под OS X гораздо менее полезен, чем в iOS, однако они отлично работают, чтобы разделить разные логические разделы в нескольких классах или когда вы хотите отображать различный контент в окне и меняться между ними (подумайте о Xcode, левом и правая панель всегда одна и та же, но содержимое в середине, текстовый редактор, целевой редактор и т.д., это будет место для использования нескольких контроллеров представлений).

Мой совет: не пытаться использовать приложение iOS для Mac. Хотя вы можете придерживаться своей базовой логики одинаково, презентация вашего приложения должна быть принципиально иной из-за того, что весь пользовательский интерфейс OS X значительно отличается. Если вы не знаете, как работать с такими вещами, как NSWindowController, NSDocument и все, документация и пример кода, предоставленные Apple, в большинстве случаев довольно хороши (хотя некоторые примеры старше)