Creating NSApplication in cocoa?
I've been searching for quite a while now but simply can't find anything, I already have window which I can create, but now when I tried to call makeKeyAndOrderFront for it, there was no application to call it for, so I was wondering if anyone could give a quick example on how do I create an application? I found out that it's NSApplication and I need to setDelegate etc, but not sure what exactly is required. for example, to create a window, I would've needed this code:
NSWindow *window;
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(10, 100, 150, 200)
st开发者_开发百科yleMask:( NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask)
backing: NSBackingStoreBuffered
defer: NO];
[window setTitle: @"Test window"];
So can anyone give me related code, but for NSApplication, I already have buttons and window?
To do this entirely in code, with no nib at all, you first should remove the NSMainMenuNib
entry from your Info.plist file. Then, in main
:
- Create an autorelease pool.
- Ask the NSApplication class for the shared application object. If nothing has ever asked for the shared application object before, this will create one.
- Create an NSMenu to hold the main menu. Create a menu item for each of the standard menus, then create a menu for each of the standard menus, and set each menu as the menu item's submenu. For each menu, create the items that should go in it. Don't forget to localize titles and to set appropriate key equivalents. Set the top-level menu as the application's main menu.
- For an application with a single window, create the window at this point, create and give it its content view, create any views you want in it and add them to the content view, and order the window in.
- Tell the application to run.
- Drain the pool.
- Exit successfully.
That's the bare minimum. Setting a delegate is, as usual, optional.
When you create an application the usual way, all of this—except creating and adding subviews, which you'd do in IB—is done for you.
Just start from one of the template available in Xcode. Then NSApplication
is automatically set up.
If you want to do in the hard way, by coding everything, this series of blog posts "Working Without Nibs" will help you, which starts here. But you don't want to do that unless you have a good grasp of the inner workings of Cocoa.
So, just stick to what people usually do, and start from the template available in Xcode.
精彩评论