【问题标题】:Simple Cocoa application with MenuBar Icon. How To:?带有 MenuBar 图标的简单 Cocoa 应用程序。如何:?
【发布时间】:2011-01-21 06:02:50
【问题描述】:

我正在尝试制作一个非常简单的 Cocoa 应用程序。我有三个窗口,上面有三个消息,仅此而已。我想要做的是:

用户运行应用程序,应用程序图标出现在菜单栏中,仅此而已,没有菜单也没有停靠图标

然后,用户可以单击菜单栏图标,并出现一个下拉列表并从三个可用消息中进行选择。

我知道它没用,但这实际上是我的第一个应用程序,我不知道如何让 NSStatusItem 正常工作...

我环顾四周,找到了一些教程,但我似乎无法遵循其中任何一个...有什么帮助吗?

【问题讨论】:

    标签: cocoa xcode macos


    【解决方案1】:
    1. 关于“无停靠图标” - 在 Info.plist 文件中添加布尔 LSUIElement 条目并将其设置为 true。这也不会在应用切换器 UI (cmd+tab) 中显示应用程序。
    2. 添加菜单栏图标与查看 NSStatusBarNSStatusItem 文档并在其中使用示例代码一样多:

    .

    // this one is taken from apple documentation
    - (void)activateStatusMenu {
        NSStatusBar *bar = [NSStatusBar systemStatusBar];
    
        theItem = [bar statusItemWithLength:NSVariableStatusItemLength];
        [theItem retain];
    
        [theItem setTitle: NSLocalizedString(@"Tablet",@"")];
        [theItem setHighlightMode:YES];
        [theItem setMenu:theMenu];
    }
    
    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
        [self activateStatusMenu];
    }
    

    更新由于 ARC 不允许在代码中调用 retain,我设法通过创建 theItem 作为正在创建项目的类的 __strong 实例变量来解决问题.

    【讨论】:

    • 哇,太好了。我(正如我的句柄所暗示的那样)是一个完全的可可新手,我来自 vb.net 背景,并且在 Objective-c 语法和其他语法方面有点挣扎。然而,我发现苹果可可文档比微软 vb 文档更彻底,后者不是非常“用户友好”。您的回答帮助很大,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多