2013-09-02 3 views
16

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

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

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

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

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

Edit:

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

+0

Я действительно думаю, что это интересный вопрос и хотел бы получить хороший ответ сам, но я также думаю, что он довольно широк (поэтому трудно дать определенный ответ), а вопросы, требующие учебников или других подобных ресурсов, обычно считаются «вне темы» (извините) –

+0

My вопрос не запрашивает учебники. Это довольно легко для Google для таких вещей. В идеале, толчок в правильном направлении, чтобы распознать различия между iOS и аналогиями OS X, такими как 'NSViewController' и' UIViewController', был бы более полезен, как и ответ @ JustSid. – CaptainRedmuff

ответ

9

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

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

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

+0

Спасибо за ваш ответ. Я бы не стал пытаться использовать приложение iOS-ify. Мне просто кажется, что приложение iOS полностью состоит из 'UIViewController', тогда как это не является требованием для приложений OS X. Основываясь на вашем ответе, возможно, «NSWindow» и «NSWindowController» станут для меня наиболее важными частями. – CaptainRedmuff

+1

@CaptainRedmuff Yep, 'NSWindowController' вроде как аналог' UIViewController'. Как вы сказали, в iOS приложение обычно содержится в контроллерах представлений, в то время как для OS X это один или несколько оконных контроллеров. – JustSid