Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何以编程方式创建Cocoa应用程序主菜单应用程序_Objective C_Macos_Nsmenu_Nsapplication - Fatal编程技术网

Objective c 如何以编程方式创建Cocoa应用程序主菜单应用程序

Objective c 如何以编程方式创建Cocoa应用程序主菜单应用程序,objective-c,macos,nsmenu,nsapplication,Objective C,Macos,Nsmenu,Nsapplication,我从头开始创建简单的Cocoa应用程序,只是为了学习这个过程 但是,我无法创建应用程序菜单。我有以下代码: - (void)applicationDidFinishLaunching:(NSNotification *)notification { [self createMenu]; } -(void)createMenu { NSMenu* myMenu = [[NSMenu alloc] init]; NSString* quitTitle = @"Quit&q

我从头开始创建简单的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];
 }
但是,在启动应用程序后,当我单击菜单栏中的应用程序名称时,什么也没有发生

请问我错过了什么

提前感谢

-createMenu()需要从ApplicationWillFinishLaunching调用:菜单本身有一些错误

#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;
}
#导入
@接口AppDelegate:NSObject
-(void)创建菜单;
@结束
@实现AppDelegate
-(void)创建菜单{
NSMenu*menubar=[[NSMenu alloc]init];
NSMenuItem*menuBarItem=[[NSMenuItem alloc]init];
[菜单栏附加项:菜单栏];
[NSApp SetMain菜单:菜单栏];
NSMenu*myMenu=[[NSMenu alloc]init];
NSString*QUITITLE=@“退出”;
NSMenuItem*quitMenuItem=[[NSMenuItem alloc]initWithTitle:Quitittle
操作:@selector(terminate:)键等价物:@“q”];
[我的菜单附加项:quitMenuItem];
[menuBarItem设置子菜单:myMenu];
}
-(无效)应用程序将完成启动:(NSNotification*)通知{
[自创菜单];
}
-(无效)ApplicationIDFinishLaunching:(NSNotification*)通知{
}
@结束
int main(){
NSApplication*应用程序=[NSApplication sharedApplication];
AppDelegate*AppDelegate=[[AppDelegate alloc]init];
[应用程序setDelegate:appDelegate];
[应用程序运行];
返回0;
}
-createMenu()需要从ApplicationWillFinishLaunching调用:菜单本身有一些错误

#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;
}
#导入
@接口AppDelegate:NSObject
-(void)创建菜单;
@结束
@实现AppDelegate
-(void)创建菜单{
NSMenu*menubar=[[NSMenu alloc]init];
NSMenuItem*menuBarItem=[[NSMenuItem alloc]init];
[菜单栏附加项:菜单栏];
[NSApp SetMain菜单:菜单栏];
NSMenu*myMenu=[[NSMenu alloc]init];
NSString*QUITITLE=@“退出”;
NSMenuItem*quitMenuItem=[[NSMenuItem alloc]initWithTitle:Quitittle
操作:@selector(terminate:)键等价物:@“q”];
[我的菜单附加项:quitMenuItem];
[menuBarItem设置子菜单:myMenu];
}
-(无效)应用程序将完成启动:(NSNotification*)通知{
[自创菜单];
}
-(无效)ApplicationIDFinishLaunching:(NSNotification*)通知{
}
@结束
int main(){
NSApplication*应用程序=[NSApplication sharedApplication];
AppDelegate*AppDelegate=[[AppDelegate alloc]init];
[应用程序setDelegate:appDelegate];
[应用程序运行];
返回0;
}

此应用程序是否还有其他功能,例如创建NSApplication实例(控制主事件循环)?此应用程序是否还有其他功能,例如创建NSApplication实例(控制主事件循环)?