cocoa NSMenu 在位置添加 NSMenuItem

标签 cocoa nsmenuitem nsmenu

我正在尝试在我的应用程序中创建一个 NSMenu。我成功创建了菜单,其中包含一些固定项目,现在我必须以编程方式添加一些项目。我在这方面也取得了成功,但它将该项目添加到了其他项目的底部。有没有办法将这个以编程方式创建的项目放在固定项目之间?这是我的代码:

.h:

@interface AppController : NSObject {

    IBOutlet NSMenu *statusMenu;
    NSStatusItem *statusItem;
}

.m

  [statusMenu setAutoenablesItems:NO];

    statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
    [statusItem setMenu:statusMenu];

    NSImage *statusImage = [[NSImage alloc] initWithContentsOfFile:@"Icon.icns"];
    [statusItem setImage:statusImage];
    [statusItem setTitle:@"Multibox"];
    [statusItem setHighlightMode:YES];

    NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:@"Carlo | 0000000000" 
                                                  action:@selector(fooClicked:) keyEquivalent:@""]; 
    [item setTarget:self];
    [statusMenu addItem:item];

最佳答案

您想要使用 insertItem:atIndex: 系列方法而不是 addItem: 方法。

关于 cocoa NSMenu 在位置添加 NSMenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001151/

相关文章:

objective-c - 使用纯文本文件存储任意元数据

swift - 如何实现 validateToolbarItem(_ :)?

cocoa - 自定义 NSMenu 突出显示颜色而不使用自定义 View

objective-c - 获取父菜单中 NSMenuItem(发送者)的索引

Cocoa 菜单栏以编程方式使用 NSMenu,如何获取标准项目 "Services"、 "Hide App"、 "Hide Others"、 "Show All"等

swift 。如何允许将 URL 从浏览器拖动到 NSView

cocoa - 如何在选择后闪烁自定义 NSMenuItem View ?

swift - 如何处理 Cocoa 菜单栏应用程序中的修改键

macos - 我可以删除自定义 NSMenu 的顶部和底部填充吗?

objective-c - 全局热键按两次,就像在听写功能中一样