1. MyApp.m
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
@interface MyDelegate : NSObject
- (void) printHello: (id)sender;
- (void) applicationWillFinishLaunching: (NSNotification *)not;
@end
@implementation MyDelegate : NSObject
- (void) printHello: (id)sender
{
//printf ("Hello!\n");
//NSLog(@"Hello!\n");
NSRunAlertPanel (@"Test", @"Hello from the GNUstep AppKit",
nil, nil, nil);
}
- (void) applicationWillFinishLaunching: (NSNotification *)not
{
NSMenu *menu;
menu = AUTORELEASE ([NSMenu new]);
[menu addItemWithTitle: @"Print Hello"
action: @selector (printHello:)
keyEquivalent: @""];
NSMenu *infoMenu;
infoMenu = AUTORELEASE ([NSMenu new]);
[infoMenu addItemWithTitle: @"Info Panel..."
action: @selector (orderFrontStandardInfoPanel:)
keyEquivalent: @""];
[infoMenu addItemWithTitle: @"Help..."
action: @selector (orderFrontHelpPanel:)
keyEquivalent: @"?"];
NSMenuItem *menuItem;
menuItem = [menu addItemWithTitle: @"Info..."
action: NULL
keyEquivalent: @""];
[menu setSubmenu: infoMenu forItem: menuItem];
[menu addItemWithTitle: @"Quit"
action: @selector (terminate:)
keyEquivalent: @"q"];
[NSApp setMainMenu: menu];
}
@end
int main (int argc, const char **argv)
{
[NSApplication sharedApplication];
[NSApp setDelegate: [MyDelegate new]];
return NSApplicationMain (argc, argv);
}
include $(GNUSTEP_MAKEFILES)/common.make
APP_NAME = MyFirstApp
MyFirstApp_OBJC_FILES = MyApp.m
# Uncomment the following if you have an icon
#MyFirstApp_APPLICATION_ICON = MyApp.png
#MyFirstApp_RESOURCE_FILES = MyApp.png
include $(GNUSTEP_MAKEFILES)/application.make
{
ApplicationName = "My First Application";
ApplicationDescription = "An Example of how to use NSMenu";
ApplicationRelease = "0.1";
Authors = ("Your Name Here <your.name@your.domain>",
"Another Name Here <another.name@another.domain>");
Copyright =
"Copyright (c) 2008 Your Name Here <your.name@your.domain>";
CopyrightDescription =
"This program is released under the GNU GPL";
}
参考: http://www.gnustep.it/nicola/Tutorials/FirstGUIApplication/node11.html