2009-09-20 7 views
1

Je voudrais construire une application de cacao et aimerais l'ouvrir sur demande. Pour une meilleure compréhension, vous devriez regarder evernote. Il a une application d'aide qui se trouve dans la barre d'état et a son propre élément de statut.Application Cocoa Helper

L'ensemble d'applications d'Evernote montre l'exécutable EvernoteHelper. Comment pourrais-je créer un tel exécutable dans un projet XCode? Devrait-il être une cible distincte? Mais ne pas séparer la cible pour un exécutable crée une application séparée bunlde?

J'ai vu quelques exemples sur Internet pour créer des aides d'application qui aident à relancer l'application. Mais ces applications auxiliaires n'ont rien de plus que du code compilé. Je suis curieux de connaître les ressources supplémentaires comme les fichiers nib pour les applications d'aide qui incluent des menus et/ou des images.

Mise à jour concernant le commentaire

Je voudrais l'application d'aide à assis dans systembar et quand l'utilisateur clique dessus, mon application devrait être lancé (il ne serait pas en cours d'exécution, l'application aide fonctionnerait comme lanceur pour l'application principale).

Je suis curieux de savoir comment copier l'exécutable aide au paquetage principale application

Répondre

2

Vous avez besoin de deux applications: Une, l'application actuelle que l'utilisateur va utiliser; l'autre, une application de fond sans visage pour fournir l'élément d'état et lancer l'application réelle.

Vous ferez probablement du FBA une ressource de l'autre application, et aurez des préférences dans le non-FBA contrôlant si le FBA est en cours d'exécution et s'il s'exécute à la connexion.

0

Il est juste une autre application et il est tout à fait à vous comment vous voulez organiser vos fichiers dans Xcode, ont dans un projet distinct ou sous-projet. Cela dit, je voudrais généralement ajouter une cible. La nouvelle cible pourrait inclure des NIB - mais ne le doit pas. Vraiment dépend de ce que votre assistant est censé faire. Vous ne savez pas exactement ce que vous entendez exactement par "relancer". (Peut-être que launchd est exactement ce que vous recherchez?)