Как создать приложение Menubar для Mac
EDIT: это хорошее готовое приложение menubar здесь (источник github) по этой ответ.
Мне было интересно, как сделать приложение menubar, каковы требования для этого?
Я видел простое приложение для меню, чтобы открыть ссылки с помощью браузера, я хочу создать что-то подобное этому.
Это приложение мне нравится подобный.
6 ответов
NSStatusItem это то, что вы ищете. Также добавьте lsuielement со строковым значением 1 к вашей информации.файл plist, чтобы скрыть его от Дока.
Я нашел всплывающее окно Codebox чтобы быть отличной отправной точкой. Он созрел для раздвоение на Github.
хотя это работает хорошо, они отмечают на своем сайте...
P. S. В Lion Apple добавляет новый класс для popovers, как в iOS. Итак, после выхода OS X 10.7 вам лучше полагаться на native Какао классы, где это возможно. В других случаях проект Popup должны оставаться годный.
как Apple добавил NSStatusBarButton
свойство NSStatusItem
в Yosemite мы можем реализовать приложение menubar намного проще. Я создал образец проекта на GitHub.
BitBar Это приложение на GitHub это может "положить что-нибудь в строке меню Mac OS X".
он запускает оболочку или другие исполняемые скрипты (которые он называет Плагины-смотрите множество примеров в плагинах repo) и отображает результаты в строке меню. Вы можете написать свой собственный плагин и запустить его, просто добавив его в папку plugins'. Помимо отображения информации, он также может запускать предопределенные сценарии bash в интерактивном режиме из меню плагина вы определяете.
Так как я впервые опубликовал этот ответ, его популярность имеет взорвался (52 участника в настоящее время), и теперь есть даже распространяемая версия, с которой вы можете упаковать свои собственные плагины.
очень простой (неинтерактивный) пример, чтобы показать живую цену биткойна:
приложения 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];
Mail Notifr является еще одним открытым исходным кодом меню приложения. Это помогло мне кучу, особенно когда мне нужно было выяснить, как реализовать open при входе в систему. Также доступно на App Store.