1

職場の上級 Mac プログラマーにおそらく尋ねるべきコーディング スタイルの質問がありますが、私は唯一の Mac プログラマーなので、そうです。ソフトウェア (3D モデル、データ視覚化) 用のポップアップ GUI があり、ポップアップは主に、各タブ (スライダー、ラジオ ボタン、チェックボックスなど) に大量のものがあるタブ付きコントロールです。タブごとのコントロール、およびおそらく半ダースのタブ...すべてのビューに単一のコントローラーを使用すると、すぐに扱いにくくなります。

たくさんのタブをロードする MainViewController は良いスタイルですか?

NSView *tabA = [[NSView alloc] initWithNibName:@"tabA.nib" bundle:[NSBundle bundleWithPath:@"/Applications/BOB.app"]];
NSView *tabB = [[NSView alloc] initWithNibName:@"tabB.nib" bundle:[NSBundle bundleWithPath:@"/Applications/BOB.app"]];

これは私の iOS でのやり方ですが、Mac OS X ではよくわかりません。コードはプロトタイピングを行っており、頻繁に変更する必要がある可能性があるため、保守性と柔軟性を提供するスタイルを好みます。

スタイルが良くないとしたら、それは何ですか?

ありがとう!

4

1 に答える 1

2

あなたのスタイルは合理的だと思います。NSViewControllerタブごとにサブクラスを作成し、それをNSTabViewusingに割り当てますNSTabViewItem

ちなみにあったほうがいいと思います

NSViewController *tabAcontroller = [[TabAController alloc] init]; 

と定義@interface TabAController:NSViewController ... @end_init

-init{
    self=[super initWithNibName:@"tabA" bundle:nil];
    if(self){
        ...
    }
    return self;
}

.nibを呼び出すときは内線番号は必要ないことに注意してくださいinitWithNibName:bundle:。また、アプリのハードコードされたパスを指定しないでください。iOS では、アプリの位置は OS によって与えられます (わかりにくいフォルダー名を使用) が、OS X では、ユーザーはアプリ バンドルを好きな場所に自由に移動できます。そのため、メイン バンドルを として参照しないでください[NSBundle bundleWithPath:@"hard coded path"]。just [NSBundle mainBundle]、またはnilほとんどの場合 just を使用します。そのまま使えるとドキュメントに書いてありますnil

于 2010-07-27T18:33:10.453 に答える