web-dev-qa-db-fra.com

Comment créer une application Menubar pour Mac

EDIT: Ceci est une belle application de barre de menu prête à l'emploi ici ( source de github ) par ceci réponse .


Je me demandais comment faire une application de barre de menu, quelles sont les conditions pour le faire?

J'ai vu une application simple pour la barre de menu était d'ouvrir des liens en utilisant votre navigateur, je veux créer quelque chose de similaire à cela.

enter image description here

C'est l'application que j'aime faire de même.

172
MacMac

NSStatusItem est ce que vous recherchez. Ajoutez également LSUIElement avec la valeur de chaîne 1 à votre Info.plist pour le masquer du Dock.

132
SteamTrout

J'ai trouvé que Codebox's Popup était un excellent point de départ. C'est mûr pour graver sur Github.

enter image description here

Bien que cela fonctionne bien, ils notent sur leur site ...

PS Dans Lion, Apple ajoute une nouvelle classe pour les popovers, comme dans iOS. Ainsi, après la sortie d’OS X 10.7, il serait préférable de s’appuyer sur les classes natives Cocoa, ce qui est possible. Dans Dans certains cas, le projet Popup devrait toujours être utilisable.

66
Alex Gray

BitBar est une application sur GitHub qui peut "Tout mettre dans la barre de menus de votre Mac OS X".

Il exécute Shell ou d'autres scripts exécutables (qu'il appelle Plugins - voir les nombreux exemples dans le référentiel de plugins ) et affiche les résultats dans la barre de menus. Vous pouvez écrire votre propre plugin et le faire fonctionner simplement en l'ajoutant dans le "dossier Plugins". En plus d'afficher des informations, il peut également exécuter des scripts bash prédéfinis de manière interactive à partir des menus de plug-ins que vous définissez.

Depuis que j'ai posté cette réponse pour la première fois, sa popularité a explosé (52 contributeurs actuellement) et il existe même une version distribuable avec laquelle vous pouvez conditionner vos propres plugins.

Un exemple très simple (non interactif) pour afficher le prix Bitcoin en direct:

enter image description here

13
MatzFan

En tant que Apple a ajouté la propriété NSStatusBarButton à NSStatusItem à Yosemite, nous pouvons implémenter l'application menubar beaucoup plus simplement. Je viens de créer un exemple de projet sur github.

https://github.com/taichino/PopupTest

10
taichino

FlyCut est une autre application open source de Nice qui le fait. (Licence MIT.) Très pratique aussi, je l'utilise plusieurs fois par jour.

Voici un code qui semble être pertinent:

    // 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
funroll

Mail Notifr est une autre application open source Menubar. Cela m’a beaucoup aidé, en particulier lorsque j’avais besoin de savoir comment mettre en œuvre l’ouverture sur la connexion. Egalement disponible sur le App Store .

0
lindon fox