2011-01-31 18 views
0

Mac OSアプリケーション開発の初心者です。私はiPhoneアプリケーションの開発に精通しています。しかし、私は、Macアプリケーションでウィンドウ、テーブルビューなどを作成することについて混乱しています。 IBを使ってそれらのことを教えるチュートリアルを見ました。しかし私はプログラム的にこれらをやることを学びたい。Macアプリケーションのプログラム開発のためのCocoaチュートリアルのご提案が必要

iPhoneでは、View Controllerを作成してウィンドウまたはウィンドウに追加できるナビゲーションコントローラに追加できます。私はMacで同様のことをする方法を知る必要があります。誰もが私にMacアプリケーションのプログラム開発を教える初心者のチュートリアルを提案/推奨することができます..

私はこのシンプルな/非常に基本的な/何を考えて最悪のについての質問を私に責めないでください。私はこのトピックについて1週間ほど前からグーグル・グーグルで語っています。私は必要なものを見つけることができません。私はいつもあなたの助けに感謝します。

ありがとうございます。

答えて

1

IBについては何も魔法はありません。 WYSIWYG方式でダイナミックタイプを表示および編集する機能以外の機能は追加しません。クラスインタフェースのすべての機能と、Cocoaの内部構造(バインディングやアーカイブなど、あなたには十分見える)を使用しています。

実行時の最大の違いは、オブジェクト(NSViewなど)の作成方法にあります。ペン先では、[[MONView alloc] initWithFrame:r]ではなくペン先を保管しないでください。

すでに言語やパターンに慣れている人は、本当に多くのwrtチュートリアルは必要ありません。通常は、同じ名前のプロパティを探し、そこに定義します。さらに、NSCoder + awakeFromNibメソッドではなく独自のinitWithメソッドを実装します。 IBがどのようにペン先を保管しているかを理解すれば、それは本当にとても簡単です。

...開始点として、機能的なnibを機能的なプログラム実装に変換することをお勧めします。途中で、NSViewグラフを操作して構築する方法を理解するためのいくつかの方法、つまりIBで知っていることをソース表現に変換する方法を調べる必要があります。

私は本当に特定のリソースを知りません、私のポイントは、あなたが信じるよりも簡単だということです。これを簡単に説明するいくつかのパブがありますが、私が知っているパブは、概念証明としていくつかのケースですぐに実証し、その後IBを使用してチュートリアルを続行します。

私が知っている最高の単なるリソースは、ココアプログラミング(Anguish/Buck/Yacktman)です。おそらく日付が付けられているか、または改訂されています。私が知っている最後のリビジョンは2002年です。

最後に、あなたは恐ろしいアイデアを教えてくれるかもしれません IBを使用してください。深刻な開発をしたいが、すでにIBを理解しているなら、それは素晴らしいスキルだと思うし、私にとっては非常に便利だと思う - 特に複雑なアプリケーションや大きなコードベースの場合 - 単純なアプリの場合、それほど重要ではありません。私はめったに作成/使用していません - 私はちょうど大部分の場合、プログラムで実装しています。私はそれがよりクリーンで、より速く、より冗長でないことがわかります。また、私はカスタム実装が大量にあり、objC++を使用しています。... IBは、メインラインから遠く離れていても、それほど助けにはなりません。

幸運!

+0

ご意見ありがとうございます。私はIBの使用を知っています。しかし、学習者として、私はいつもより良いことを学ぶように自分自身をコーディングすることを好みます。 – EmptyStack

+0

@サイモンあなたが真剣にそれを取っているならば、それは完璧です。私はそれを中級および上級のCocoa開発者にとって必須のスキルと考えています。残念ながら、それは私が望むほど頻繁ではありません。ドキュメントは、特定のメソッドについて質問がある場合にも役立ちます。特定のメソッドやクラスについて、リストの最後に関連するサンプルコードへのリンクを提供します。ただし、サンプルの徹底性、適用性、品質はさまざまであるため、インターネット検索も非常に便利です。チャンスは、誰かがすでに質問をしているか、答えがあなたには明らかではない問題を解決しているということです。 – justin

+0

ありがとうございます。プログラムで「Hello World」アプリを作成する方法のチュートリアルを取得しても、問題ありません。私はプログラム的にすべてを始める方法を苦労しています。 – EmptyStack

関連する問題