Конечно, вы можете создавать все элементы интерфейса программно.Вы просто создаете окно с содержимым NSOpenGLView
, например:
NSWindow *w = [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,400,300)
styleMask:NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask
backing:NSBackingStoreBuffered
defer:YES];
NSRect frame = [w contentRectForFrameRect:[w frame]];
// this is optional - request accelerated context
unsigned int attrs[] = { NSOpenGLPFAAccelerated, 0 };
NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:(NSOpenGLPixelFormatAttribute*)attrs];
NSOpenGLView *view = [[NSOpenGLView alloc] initWithFrame:frame pixelFormat:pixelFormat];
[pixelFormat release];
// manage properties of the window as you please ...
[w setOpaque:YES];
[w setContentView:view];
[w makeFirstResponder:view];
[w setContentMinSize:NSMakeSize(150.0, 100.0)];
[w makeKeyAndOrderFront: self];
На практике вы, вероятно, подкласс NSOpenGLView
и будете использовать вместо этого свой класс ...