2

私はココアを学んでおり、下のスクリーンショットと同様のレイアウトを必要とするアプリケーションを作成しています (これは非常に一般的なレイアウト アプローチのようです)。

このタイプの Cocoa アプリケーションは、どのようなコントロール/アーキテクチャになりますか?

私はまだ学習/読書の初期段階にあり、ドキュメントベースのアプリケーションについてはこれまでしか知りませんが、このタイプのレイアウトは、複数のウィンドウを開く必要がないため、ドキュメントベースのアプリのようには見えません。 .

ドキュメントではない場合、他のデザイン パターンやレイアウトの名前はありますか?

これまでのことから、これを次のように説明します。

このようなアプリの高レベル設計の詳細な概要を教えていただければ幸いです。つまり、パネルの数、使用されるビュー、コントロール、コントローラーなどです。

また、いくつかの簡単なサブ質問:

  1. 左ペインのメニュー コントロールはどのようなもので、サブ要素を展開して表示するのは何ですか?

  2. 環境設定ウィンドウが表示されているとき、(アドレス帳のように) アニメ化された方法で表示される効果は何と呼ばれ、アニメ化された方法で正しいサイズに拡大する小さなウィンドウです。

ここに画像の説明を入力

4

2 に答える 2

3

デフォルトで新しいウィンドウでドキュメントを開くため、これはおそらくドキュメントベースのアプリケーションではないことは間違いありません。

このようにウィンドウをレイアウトするNSSplitViewには、3つのペインを含むがあります。各ペインには、オプションで、からロードされたビューを含めることNSViewControllerができます。これは、コードをモジュール化しておくのに役立ちますが、これが適切かどうかは、何をしようとしているかによって異なります。

左側のペインはNSOutlineViewNSTableViewサブクラス)、中央はNSTableViewですが、右側のビューがどのように作成されるかは正確にはわかりません(多くのカスタムNSViewやその他のもの、場合によってはWebView

そのポップオーバーオプションウィンドウはおそらくNSPopover(を含むNSViewController)ですが、それはOS X 10.7とのみ互換性があるため、下位互換性とより簡単なカスタマイズのために完全にカスタム化することもできます。

また、これはかなり複雑な例であり、見た目よりも作成が難しいカスタムコントロールがたくさんあることにも注意してください。

  • 左側のアウトラインビューを取得して未読のカウントとアイコン(メモリから)を取得することはAppKitに組み込まれていないため、すべてカスタム作成されました。そのようなことを行うには、NSCellvsNSViewをしっかりと理解する必要があります。理想的には、Core Animationレイヤーに裏打ちされたビュー、およびさまざまな側面で何を使用するかについても知っている必要があります。

  • ウィンドウには通常よりも高いタイトルバーがあります。これは、ウィンドウ全体を最初から作成しない場合でも、開発者がそれを機能させるためにおそらくいくつかのクレイジーなことをしなければならなかったことを意味します。

それはほんの始まりに過ぎません。そこには、カスタムでゼロから作成された本当に素晴らしいデザインがたくさんあります。

Macアプリの設計は難しい場合があります。AppKitはかなり古く(翌日から)、多くのレガシーが残っています。一方、iOS上のUIKitは非常に優れています。Appleは明らかに過去から学び、物事をはるかに改善しました。


その背後にあるコントローラーとモデルについてはほとんど触れていません。あなたがそれをすることができる多くの異なった方法があります。NSKeyedArchived永続性のために、ほんの数例を挙げると、CoreData、sqlite、を使用できます。ブレントシモンズ(別のRSSリーダーの過去の開発者であるNetNewsWire)は、それについていくつかの興味深いブログ投稿を書きました: http: //inessential.com/2010/02/26/on_switching_away_from_core_data http://inessential.com/2011/09/22/core_data_revisited

モデルとコントローラーを設計する方法は、実際には特定の問題によって異なります。ただし、Cocoaは実際にMVCに固執することを強制します。そうしないと、物事が乱雑になることが保証されます。


すべてがお役に立てば幸いです。私も自分自身を学んでいるだけです。

于 2012-07-11T02:35:01.730 に答える
0

Apple は、このタイプのアプリケーション デザインをシングル ウィンドウ、ライブラリ (または「<strong>シューボックス」) スタイルと呼び、ドキュメントでこのデザインの選択について多くの推奨事項を示しています。

( Mac アプリ プログラミング ガイドを参照)

于 2012-11-16T15:51:10.353 に答える