Где разместить инициализацию представления в проекте AppKit без nibles?

В настоящее время я работаю над проектом AppKit без nibles, и мне было интересно, где было бы уместно инициализировать представления, отличные от главного окна. Вот что у меня есть сейчас:

основной.м

#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

Если я хочу теперь добавить в свое окно подвиды, такие как кнопки и панели, буду ли я делать все это в методе init моего AppDelegate? Могу ли я создать подкласс NSWindow и изменить там метод инициализации? Должен ли я делать все это в applicationDidFinishLaunching?


person Zameer Manji    schedule 18.12.2011    source источник


Ответы (1)


Я предлагаю вам следовать архитектуре MVC и создать класс NSViewController для вашего пользовательского представления. Вы можете выполнить инициализацию представления в методе -loadView.

person iHunter    schedule 20.12.2011