2011-12-18 7 views
2

私は現在、無関心なAppKitプロジェクトに取り組んでいます。私は、メインウィンドウ以外のビューを初期化するのが適切であると思っていました。ここで私は今持っているものです。nibless AppKitプロジェクトでビューの初期化を行う場所はどこですか?

main.m

#import <Cocoa/Cocoa.h> 
#import "AppDelegate.h" 

int main(int argc, char *argv[]) 
{ 
    NSApplication *application = [NSApplication sharedApplication]; 

    AppDelegate * applicationDelegate = [[AppDelegate alloc] init]; 

    [application setDelegate:applicationDelegate]; 

    [application run]; 

    return EXIT_SUCCESS; 
} 

そして、私AppDelegate:

#import "AppDelegate.h" 
@implementation AppDelegate 

- (id)init { 

    self = [super init]; 
    if (!self) { 
     return nil; 
    } 

    NSRect contentSize = NSMakeRect(200, 300, 300, 100); 
    window = [[NSWindow alloc] initWithContentRect: contentSize styleMask:NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask 
            backing:NSBackingStoreBuffered 
            defer:NO]; 
    window.title = @"NewWindow"; 
    window.level = NSModalPanelWindowLevel; 
    return self; 
} 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [window makeKeyAndOrderFront:self]; 
} 
@end 

私は今、このようなボタンやペインとしての私の窓にサブビューを追加したい場合は、私が考え私のAppDelegateのinitメソッドのすべてを実行しますか? NSWindowをサブクラス化し、そこにinitメソッドを変更しますか? applicationDidFinishLaunchingですべての作業を行う必要がありますか?

答えて

2

MVCアーキテクチャに従って、カスタムビュー用にNSViewControllerクラスを作成することをお勧めします。ビューの初期化は、-loadViewメソッドで実行できます。

関連する問題