objective-c – Cocoa应用程序菜单栏无法点击

objective-c – Cocoa应用程序菜单栏无法点击,第1张

概述我正在我的 cocoa应用程序中构建一个菜单栏,并在我的自定义应用程序CustomApplication的@implementation中使用以下代码: +(void) setUpMenuBar{ [CustomApplication sharedApplication]; // Main menu NSMenu* mainMenu = [NSApp mainMenu]; if 我正在我的 cocoa应用程序中构建一个菜单栏,并在我的自定义应用程序CustomApplication的@implementation中使用以下代码:

+(voID) setUpMenubar{  [CustomApplication sharedApplication];  // Main menu  NSMenu* mainMenu = [NSApp mainMenu];  if (mainMenu != nil) return; // We set it already  mainMenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];  [NSApp setMainMenu:mainMenu];  // Application menu  NSMenuItem* appleItem = [mainMenu addItemWithTitle:@""                                              action:nil                                       keyEquivalent:@""];  Nsstring* appname = @"MyApp";  NSMenu* appleMenu = [[NSMenu alloc] initWithTitle:@""];  // Apple menu  [appleMenu addItemWithTitle:[@"About " stringByAppendingString:appname]                       action:@selector(orderFrontStandardAboutPanel:)                keyEquivalent:@""];  // Quit  [appleMenu addItemWithTitle:[@"Quit " stringByAppendingString:appname]                                        action:@selector(terminate:)                                        keyEquivalent:@"q"];  [appleItem setSubmenu:[appleMenu autorelease]];}

在启动时,我的应用程序获得焦点,但菜单栏不可克服.
但是,如果我再次单击窗口并将其重新放回(将焦点返回给应用程序),它将变为可单击并正常工作.

我错过了什么?

UPDATE

当我按如下方式创建应用程序时调用此方法.
[更新]这是我正在开始我的应用程序.它实际上是从类的任何@implementation之外的ocaml绑定中调用的第一件事.

CustomApplicationDelegate* delegate = [CustomApplicationDelegate new];[CustomApplication sharedApplication];[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];[NSApp activateIgnoringOtherApps:YES];[[NSApplication sharedApplication] setDelegate:delegate];[CustomApplication setUpMenubar];[[CustomApplication sharedApplication] finishLaunching];
解决方法 好的,感谢@bhaller的评论,我能够解决我的问题.

我实际上将调用转移给了代理,如下所示.

-(voID)applicationWillFinishLaunching:(NSNotification *)aNotification{  [CustomApplication sharedApplication];  [CustomApplication setUpMenubar];  [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];}-(voID)applicationDIDFinishLaunching:(NSNotification *)notification{  [CustomApplication sharedApplication];  [NSApp activateIgnoringOtherApps:YES];}
总结

以上是内存溢出为你收集整理的objective-c – Cocoa应用程序菜单栏无法点击全部内容,希望文章能够帮你解决objective-c – Cocoa应用程序菜单栏无法点击所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存