Skip navigation.
 
mlRe: Initializing the menubar without Interface Builder
FROM : Jeff Johnson
DATE : Sat Nov 03 18:37:02 2007

Rob,

I wrote a series of short articles about this a few months ago.  The 
latest is at <http://lapcatsoftware.com/blog/2007/07/10/working-
without-a-nib-part-5-open-recent-menu/
>.  The technique should still 
work on Leopard, though it's using a deprecated method.  I'll write a 
new article soon about a non-deprecated technique that works on Leopard.

-Jeff


On Nov 3, 2007, at 12:12 PM, Robert Nikander wrote:

> Hi all,
>
> How do I setup the menu bar if I'm not using Interface Builder? 
> Here's some sample code that pops up a window, but there are no menus.
>
> I could answer this myself if I could see the source code for 
> NSApplicationMain, but that's not available, correct?
>
> thank you,
> Rob
>
>
> #import <Cocoa/Cocoa.h>
>
> int main()
> {
>    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
>    NSApplication *app = [NSApplication sharedApplication];
>
>    id window = [[NSWindow alloc] initWithContentRect: NSMakeRect
> (10,10,100,100)
>                                  styleMask: NSTitledWindowMask | 
> NSResizableWindowMask | NSClosableWindowMask | 
> NSMiniaturizableWindowMask
>                                  backing: NSBackingStoreBuffered
>                                  defer: NO];
>    [window makeKeyAndOrderFront: window];
>
>    id m = [[NSMenu alloc] initWithTitle: @"Test Menu"];
>    id mi = [[NSMenuItem alloc] initWithTitle: @"Test Menu Item"
>                                action: nil
>                                keyEquivalent: @""];
>    [m addItem: mi];
>    printf ("mainMenu: %p\n", [app mainMenu]);
>    [app setMainMenu: m];
>    [NSMenu setMenuBarVisible: YES];
>
>    [app run];
>    [pool release];
> }

Related mailsAuthorDate
mlInitializing the menubar without Interface Builder Robert Nikander Nov 3, 18:12
mlRe: Initializing the menubar without Interface Builder Jeff Johnson Nov 3, 18:37
mlRe: Initializing the menubar without Interface Builder Jeff Johnson Nov 3, 18:46
mlRe: Initializing the menubar without Interface Builder mmalc crawford Nov 3, 19:29
mlRe: Initializing the menubar without Interface Builder Robert Nikander Nov 3, 19:54
mlRe: Initializing the menubar without Interface Builder Robert Nikander Nov 3, 20:08
mlRe: Initializing the menubar without Interface Builder mmalc crawford Nov 4, 00:13
mlRe: Initializing the menubar Robert Nikander Nov 4, 01:15
mlRe: Initializing the menubar Eric Schlegel Nov 4, 17:25
mlRe: Initializing the menubar Robert Nikander Nov 4, 18:05