2011-12-18 1 views
2

저는 현재 비 압축 AppKit 프로젝트를 진행 중입니다. 기본 창 이외의보기를 초기화하는 것이 적절한 지 궁금합니다. 여기에 내가 지금 무엇을 가지고 :니블레스 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 메소드에서 뷰 초기화를 수행 할 수 있습니다.