Как создать приложение Menubar для Mac - PullRequest
172 голосов
/ 05 августа 2010

РЕДАКТИРОВАТЬ: Это хорошее готовое приложение menubar здесь ( источник github ) этим ответом .


Мне было интересно, как создать приложение menubar, каковы требования для этого?

Я видел простое приложение для menubar - открывать ссылки с помощью браузера, я хочу создать что-то похожее на это..

enter image description here

Это приложение, которое мне нравится делать похожим.

Ответы [ 6 ]

132 голосов
/ 05 августа 2010

NSStatusItem - это то, что вы ищете.Также добавьте LSUIElement со строковым значением 1 в ваш Info.plist, чтобы скрыть его от Dock.

66 голосов
/ 26 июля 2011

Я нашел всплывающее окно Codebox , чтобы быть отличной отправной точкой. Он созрел для разветвления на Github.

enter image description here

Хотя это хорошо работает, они заметили на своем сайте ...

P. S. В Lion Apple добавляет новый класс для всплывающих окон, как в iOS. Итак, после выхода OS X 10.7 вам лучше положиться на нативный Классы какао, где это возможно. В других случаях проект Popup должен быть пригоден для использования.

13 голосов
/ 02 июня 2015

BitBar - это приложение на GitHub , которое может «Поместить что-нибудь в строку меню Mac OS X».

Оно запускает оболочку или другие исполняемые скрипты (которыеон вызывает Плагины - см. множество примеров в репозитории плагинов ) и отображает результаты в строке меню.Вы можете написать свой собственный плагин и запустить его, просто добавив его в «папку плагинов».Помимо отображения информации, он также может запускать предопределенные сценарии bash в интерактивном режиме из определяемых вами меню плагинов.

С тех пор как я впервые опубликовал этот ответ, его популярность взорвалась (52 участника в настоящее время)и теперь есть даже распространяемая версия, с которой вы можете упаковать свои собственные плагины.

Очень простой (неинтерактивный) пример для отображения цены биткойна в реальном времени:

enter image description here

10 голосов
/ 30 марта 2015

Поскольку Apple добавила свойство NSStatusBarButton к NSStatusItem в Yosemite, мы можем реализовать приложение menubar намного проще. Я только что создал пример проекта на GitHub.

https://github.com/taichino/PopupTest

2 голосов
/ 10 февраля 2014

FlyCut - еще одно приятное приложение с открытым исходным кодом, которое делает это.(MIT лицензирован.) Очень удобно, я использую его несколько раз в день.

Вот код, который может показаться актуальным:

    // Flycut/AppController.h
    IBOutlet NSMenu *jcMenu;

    // Flycut/AppController.m
    statusItem = [[[NSStatusBar systemStatusBar]
            statusItemWithLength:NSVariableStatusItemLength] retain];
    [statusItem setHighlightMode:YES];

    if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 1 ) {
        [statusItem setTitle:[NSString stringWithFormat:@"%C",0x2704]]; 
    } else if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 2 ) {
        [statusItem setTitle:[NSString stringWithFormat:@"%C",0x2702]]; 
    } else {
        [statusItem setImage:[NSImage imageNamed:@"com.generalarcade.flycut.16.png"]];
    }
    [statusItem setMenu:jcMenu];
    [statusItem setEnabled:YES];
0 голосов
/ 07 июня 2015

Mail Notifr - еще одно приложение Menubar с открытым исходным кодом.Это мне очень помогло, особенно когда мне нужно было выяснить, как реализовать открытое при входе в систему.Также доступно в App Store .

...