如何解决如何以编程方式创建Cocoa应用主菜单应用
我正在从头开始创建简单的Cocoa应用程序,只是为了学习该过程。
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
[self createMenu];
}
-(void)createMenu
{
NSMenu* myMenu = [[NSMenu alloc] init];
Nsstring* quitTitle = @"Quit";
NSMenuItem* quitMenuItem = [[NSMenuItem alloc] initWithTitle:quitTitle
action:@selector(terminate:)
keyEquivalent:@"q"];
[myMenu addItem:quitMenuItem];
[NSApp setMainMenu:myMenu];
}
但是,启动应用程序后,当我在菜单栏中单击应用程序名称时,没有任何反应
我想念什么?
预先感谢
解决方法
需要从ApplicationWillFinishLaunching调用
-createMenu():菜单本身有一些错误。
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
- (void)createMenu;
@end
@implementation AppDelegate
-(void)createMenu {
NSMenu *menubar = [[NSMenu alloc]init];
NSMenuItem *menuBarItem = [[NSMenuItem alloc] init];
[menubar addItem:menuBarItem];
[NSApp setMainMenu:menubar];
NSMenu *myMenu = [[NSMenu alloc]init];
NSString* quitTitle = @"Quit";
NSMenuItem* quitMenuItem = [[NSMenuItem alloc] initWithTitle:quitTitle
action:@selector(terminate:) keyEquivalent:@"q"];
[myMenu addItem:quitMenuItem];
[menuBarItem setSubmenu:myMenu];
}
- (void) applicationWillFinishLaunching: (NSNotification *)notification {
[self createMenu];
}
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
}
@end
int main (){
NSApplication *application = [NSApplication sharedApplication];
AppDelegate *appDelegate = [[AppDelegate alloc] init];
[application setDelegate:appDelegate];
[application run];
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。