2
2
// Licensed under the MIT license.
3
3
4
4
#import " AHAppDelegate.h"
5
+ #import < Cocoa/Cocoa.h>
5
6
6
7
extern const NSString * kErrorDomain ;
7
8
@@ -21,7 +22,10 @@ -(id)initWithBlock:(AHAppWorkBlock)block logger:(AHLogger*)logger;
21
22
22
23
-(void )run
23
24
{
24
- NSApplication * application = [NSApplication sharedApplication ];
25
+ NSApplication *application = [NSApplication sharedApplication ];
26
+ NSMenu *mainMenu = [self createMainMenu ];
27
+ [application setMainMenu: mainMenu];
28
+
25
29
[self setApplication: application];
26
30
[application setDelegate: self ];
27
31
[NSApp setActivationPolicy: NSApplicationActivationPolicyRegular];
@@ -57,6 +61,35 @@ -(void) stop
57
61
[[self application ] postEvent: event atStart: NO ];
58
62
}
59
63
64
+ -(NSMenu *) createMainMenu
65
+ {
66
+ NSMenu *mainMenu = [NSMenu new ];
67
+
68
+ // Create top-level menu items
69
+ NSMenuItem *appMenuItem = [NSMenuItem new ];
70
+ NSMenuItem *editMenuItem = [NSMenuItem new ];
71
+ [mainMenu addItem: appMenuItem];
72
+ [mainMenu addItem: editMenuItem];
73
+
74
+ // Create app menu items
75
+ NSMenu *appMenu = [NSMenu new ];
76
+ [appMenuItem setSubmenu: appMenu];
77
+ [appMenu addItemWithTitle: @" Quit"
78
+ action: @selector (terminate: )
79
+ keyEquivalent: @" q" ];
80
+
81
+ // Create edit menu items
82
+ NSMenu *editMenu = [[NSMenu alloc ] initWithTitle: @" Edit" ];
83
+ [editMenuItem setSubmenu: editMenu];
84
+ [editMenu addItemWithTitle: @" Cut" action: @selector (cut: ) keyEquivalent: @" x" ];
85
+ [editMenu addItemWithTitle: @" Copy" action: @selector (copy: ) keyEquivalent: @" c" ];
86
+ [editMenu addItemWithTitle: @" Paste" action: @selector (paste: ) keyEquivalent: @" v" ];
87
+ [editMenu addItemWithTitle: @" Delete" action: @selector (delete: ) keyEquivalent: @" " ];
88
+ [editMenu addItemWithTitle: @" Select All" action: @selector (selectAll: ) keyEquivalent: @" a" ];
89
+
90
+ return mainMenu;
91
+ }
92
+
60
93
+ (NSError *)runDelegate : (AHAppWorkBlock)completionBlock logger : (AHLogger*)logger
61
94
{
62
95
AHAppDelegate * delegate = [[AHAppDelegate alloc ] initWithBlock: completionBlock logger: logger];
0 commit comments