2013-09-02 9 views
16

私はかなりの年の間、iOS専用に開発しており、iOSとObjective Cにかなり有能であると考えています。スキルをさらに広げて、 OS X用のデスクトップアプリケーションの例iOSの背景から来るOS X用の開発

ビューコントローラとウィンドウコントローラ(どちらかといえば)について、両方のプラットフォームで大きく異なるパラダイムを考慮すると、自分の知識として湿った足を濡らすための出発点を見つけようと苦労しています。 OS Xのドキュメントを読むと、iOS SDKが混乱を招いています。

私には、iOS用の主要なクラスがUIViewControllerだろう(そしてそれは変種、UINavigationControllerUISplitViewControllerだ)とUIView。これらを把握することで、サブクラス(UIButtonUITextFieldなど)の学習がわかりやすくなり、目に見える結果を得るために画面上に何かが表示されるようになります。

現在、NSViewControllerは必ずしもUIViewControllerと同じであるとは限りません。また、OS Xアプリケーションが複数のウィンドウを持つことができることを考慮すると、UIWindowControllerは私にとっては全く外国人です。アプリケーションの階層内にどのように置かれるのか分かりません。

熟練したOS Xの退役軍人は、私が読んだり遊んだりするためにどのクラスが最も有用な出発点になるかを示唆するのに十分親切でしょうか?

私はないです:何この時点で、私には参考になることは

編集私は完全にiOSとOS Xの間の違いを見分けることに私の努力を集中する必要があるSDKのどの領域を見つけることですチュートリアルのリストを尋ねる。私は誰かが複数のビューコントローラ階層(iOS)のパラダイムとOS Xの1つのウィンドウ設定の違いを説明したり、画面上に何かを得るための出発点としてどのクラスを最善に調査するかを勧めたいNSWindowNSWindowControllerとなります。

+0

興味深い質問があり、自分自身で良い答えを出したいと思っていますが、それはかなり広いと思います(したがって、明確な答えを得るのは難しい)、チュートリアルやその他のリソースを求める質問は、通常「オフトピック」とみなされます(申し訳ありません) –

+0

質問はチュートリアルを要求しません。そんなことをGoogleにするのは簡単です。理想的には、「NSViewController」や「UIViewController」などのiOSとOS Xの相違点を識別する正しい方向へのプッシュは、@ JustSidの答えと同じように、より役に立ちます。 – CaptainRedmuff

答えて

9

OS Xは、MVCの概念にも従う点で、iOSとかなり似ています。しかし、OS Xは通常、大きなディスプレイで動作し、入力にマウスとキーボードを使用するため、ユーザーエクスペリエンスは異なります。したがって、NSViewControllerUIViewControllerの間の1:1マッピングは不可能です。通常は、あなたのビューコントローラがiOSの下で動作するように動作するウィンドウコントローラがあります。しかし、ビューコントローラ間での遷移の代わりに、例えば、 a UINavigationControllerの場合は、2番目のウィンドウをモーダルシートとして表示するか、それをパネルなどで開くだけです。

平均的なMacアプリケーションを見てみましょう.iOSの下では複数のView Controllerとトランジションが必要なほとんどのものは、すべてが含まれている単一のウィンドウでしか動作しません。 OS XのView ControllerはiOSよりもはるかに役に立たないが、異なるロジックを複数のクラスに分割したり、別のコンテンツをウィンドウ内に表示したり、その間で変更したりする場合に効果的です(Xcode、右ペインは常に同じですが、中間、テキストエディタ、ターゲットエディタなどのコンテンツが変更されます。これは複数のView Controllerを使用する場所になります)。

私のアドバイスは、MacアプリケーションをiOSにしようとしないことです。基本的なロジックを同じに保つことができますが、OS Xの全ユーザエクスペリエンスが大きく異なるため、アプリケーションのプレゼンテーションは根本的に異なるはずです。NSWindowController,NSDocumentなどの作業方法がわからない場合、Appleが提供するドキュメントとサンプルコードはほとんどの場合かなり良いです(しかし、いくつかの例は古いです)。

+0

ご回答いただきありがとうございます。アプリケーションをiOSにしようとはしません。 iOSアプリケーションは完全に「UIViewController」で構成されていますが、これはOS Xアプリケーションにとっては必須条件ではありません。あなたの答えに基づいて、おそらく 'NSWindow'と' NSWindowController'が私を最初に理解するための最も重要な部分です。 – CaptainRedmuff

+1

@CaptainRedmuff「NSWindowController」は、「UIViewController」のようなものです。あなたが言ったように、iOSの下では、アプリケーションは通常View Controllerに含まれていますが、OS Xでは1つ以上のウィンドウコントローラです。 – JustSid

関連する問題