В настоящее время я работаю над проектом 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
?