0

私は Objective-C で最初のアプリケーションを開発しているので、現時点では「ベスト プラクティス」ではないことを十分に期待していますが、コード/アウトレット/アクションを間違った場所に散らばらせ始めているのではないかと思います。ですから、これらのものを置くのに最適な場所を知りたいのです。私のアプリの簡単な概要は次のとおりです。

私はいくつかの NSTextFields と NSButtons を含む NSTabView を一番上に持っています。コードを使用して、テキスト フィールドのデフォルト アクションを 2 つのボタンのいずれかに設定できるようにしたいと考えています (そのため、Ctrl キーを押しながらドラッグしても接続できないと思われます)。TabViewController の init: メソッドでこれを行うと思ったのですが、うまくいかないようです。

[_myTextFieldOutlet setTarget:self]; 
[_myTextFieldOutlet setAction:@selector(oneOfTheMethods:)];

そのため、applicationDidFinishLaunching: メソッド内から上記を実行する必要があると考えて、いくつかのアウトレットを AppDelegate にドラッグしようとしていましたが、TabViewController だけでなく、2 つのファイルでこれらのテキスト フィールドのアウトレットが必要になります。私は今、私が混乱を引き起こしていると考え始めています。AppDelegate 内で上記を実行した場合、おそらく「self」は正しくないでしょう。また、おそらく oneOfTheMethods: も表示されませんか? 私はまだそれを試していません。

これを行うより良い方法はありますか?1 つのクラスに 100 のメソッドがあり、GUI のメイン コンテナーごとに 1 つのコントローラーを使用することは十分に合理的であると考えていました。しかし、あるコントローラーのメソッドが他のコントローラーを参照する必要がある場合、私はそれが間違っていると思い始めています。私は c# .NET に慣れており、問題なく同じことを簡単に行うことができますが、Objective-C と XCode については、ほとんどの場合、自分自身を推測する必要があります。

ありがとう。

4

1 に答える 1

3

Mike Ash のNSblogを読むことをお勧めします。私は多くのことを学びました。Cocoa アプリの構成について、彼は次のように提案しています。

Cocoa アプリの基本的な UI コンポーネントは NSWindow であり、それらをインスタンス化して管理するさまざまな方法がありますが、正しい方法は 1 つだけです。ウィンドウの種類ごとに、個別の nib ファイルと、専用の NSWindowController が必要です。サブクラス。これが何を意味し、どのように行うかについて、読者の Mike Shields が提案したトピックについて説明します。

于 2013-08-17T03:18:26.217 に答える