Jak utworzyć aplikację paska menu dla komputerów Mac

EDIT: to jest ładny gotowy program menu tutaj (github source ) by this answer .


Zastanawiałem się jak zrobić aplikację menu, jakie są do tego wymagania?

Widziałem prostą aplikację na pasek menu do otwierania linków za pomocą przeglądarki, chcę stworzyć coś podobnego.

Tutaj wpisz opis obrazka

To jest aplikacja, którą lubię robić podobnie.

Author: Community, 2010-08-05

6 answers

NSStatusItem jest tym, czego szukasz. Dodaj również LSUIElement z wartością ciągu 1 do swoich informacji.plist, aby ukryć to przed dokiem.

 129
Author: SteamTrout,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-17 10:48:24

Znalazłem Popup Codebox ' a jako świetny punkt wyjścia. Jest gotowy do rozwidlenia na Githubie.

Tutaj wpisz opis obrazka

Chociaż działa to ładnie, zauważają na swojej stronie...

P. S. w Lionie Apple dodaje nową klasę dla popowerów jak w iOS. Więc po wydaniu OS X 10.7 lepiej polegać na natywnym Klasy Cocoa, gdzie jest to możliwe. W innych przypadkach projekt Popup nadal powinny być użyteczne.

 66
Author: Alex Gray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-26 18:36:44

Jak Apple dodał właściwość NSStatusBarButton do NSStatusItem w Yosemite, możemy zaimplementować Aplikację menu o wiele prostsze. Właśnie stworzyłem przykładowy projekt na GitHubie.

Https://github.com/taichino/PopupTest

 10
Author: taichino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-31 11:23:17

BitBar to aplikacja na GitHub , która może "umieścić wszystko na pasku Menu Mac OS X".

Uruchamia powłokę lub Inne skrypty wykonywalne (które wywołuje wtyczki - Zobacz wiele przykładów w repo wtyczek) i wyświetla wyniki na pasku menu. Możesz napisać własną wtyczkę i uruchomić ją po prostu dodając ją do "folderu wtyczek". Oprócz wyświetlania informacji, może również uruchamiać wstępnie zdefiniowane skrypty bash interaktywnie z menu Wtyczki zdefiniuj.

Odkąd po raz pierwszy opublikowałem tę odpowiedź, Popularność eksplodowała (obecnie 52 współpracowników) i jest teraz nawet wersja dystrybuowalna, z którą można spakować własne wtyczki.

Bardzo prosty (nieinteraktywny) przykład pokazujący cenę bitcoina na żywo:

Tutaj wpisz opis obrazka

 10
Author: MatzFan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-23 12:04:16

FlyCut to kolejna fajna aplikacja open source, która to robi. (Licencja MIT.) Bardzo poręczny, używam go kilka razy dziennie.

Oto jakiś kod, który wydaje się być istotny:

    // 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];
 2
Author: funroll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-10 16:54:31

Mail Notifr to kolejna aplikacja open source na pasku Menu. Pomogło mi to, zwłaszcza gdy musiałem dowiedzieć się, jak zaimplementować open przy logowaniu. Dostępne również w App Store.

 0
Author: lindon fox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-07 09:50:14