16

長い間iPhoneの仕事をしていたので、MacでのCocoa開発に戻ってきました。MacでのCocoaでの私の以前の経験は、ちょっとした小さなツールでした。何か真面目なものを作りたいと思っています。

iPhoto(またはMailまたはThingsなど)のような最新のCocoaアプリケーションを見ると、多くのアプリはシングルウィンドウ、ソースリストベースのアプローチを使用しています。それは良い経験を提供するように思われるので、私はできる限りその周りに頭を包み込もうとしています。しかし、私は少し問題を抱えています。これが私がどのように見えるべきだと思うかですが、私は他の人がそれをどのようにやっているのか、そして本当に最良の方法は何であるか疑問に思っています:

  • アプリの開始点はAppDelegateオブジェクトであり、起動後、ペン先からWindow [Controller?]を作成し、そのデータをセットアップします(たとえば、CoreDataから)

  • WindowControllerは、基本的にNSSplitViewを含むウィンドウをロードします。

  • 分割ビューの左側には、SourceListスタイルを持つように設定されたNSTableViewまたはNSOutlineViewがあります。

  • 右側には、テーブルビューのどのアイテムが選択されているかに応じて、アプリのメインコンテンツが表示されます。

どこかに(どこに?)右側に表示されるさまざまなビューのそれぞれを管理するNSViewControllersがあると思います(iPhotoにすべての写真、イベント、顔、場所などがあり、それらはすべて異なるペン先に表示される可能性があると思います) ... これは正しいです?)。

これらのビューコントローラは、おそらく左側のソースリストにバインドされています。これはどのように機能しますか(ソースリストはNSViewControllersのNSArrayControllerによってサポートされている可能性がありますか?)。

とにかく、それは私の考えです、私は完全にオフベースですか...?私はウェブを見回し、この投稿をここで見つけました。そして、いくつかのAppleソースコードを見ましたが、頭を包み込むことができないようです。どんな指導も歓迎します。

4

2 に答える 2

6

ビューを別々のニブに分割することは、いくつかのビューを他のビューと交換する場合に主に適しています。ビューを遅延ロードできるからです。はい、最新のアプリでは、NSViewController を使用するか、おそらく KTUIKit の KTViewController を使用します(彼女が共著した NSViewController に関する投稿を参照してください) 。

ただし、ソースリストの腕にぶつかるだけではありません。単一ウィンドウのインターフェースは単純なアプリには適していますが、多くのことを行っている場合はすぐに扱いにくくなる可能性があります。iTunes と Xcode は両方とも、この例を数多く提供しています (特に後者は、SWI と MWI を切り替えることができるためです)。

複数ウィンドウのインターフェイスと単一ウィンドウのインターフェイスのどちらがアプリに適しているかを考える必要があります。すべてのアプリに 1 つの答えはありません。それは完全にあなたのアプリと、あなたが何をしたいのか、どのように見せたいのかによって異なります. 少なくとも両方の UI の偽の例を互いに比較できるように、紙のプロトタイピングを行って、各方向で簡単な実験を行うことをお勧めします。

于 2009-09-03T05:17:35.380 に答える
4

ペン先がどのように分割されるかを簡単に把握する方法の 1 つは、iPhoto ディレクトリに移動してペン先を開き始めることです。

クラス構造をもう少し調べたい場合は、F-Scriptを使用してブラウジングしてみてください。

于 2009-09-03T02:44:40.920 に答える