If you are using DropBox on MacBook you must have seen that once we finish with registration process. It closes the main window application and removes it self from dock item yet the application is running from status menu.
How to achieve this?
FYI : I am not expecting any code, just understanding or a quick hint. I will figure out the rest :)
Later I will configure my app for launchd. So at system startup it can launch and shows it self in status menu. Now I am I looking at a good resource(Of course its good because its Apple Doc) but as I am a naive programmer, does anyone have a good example link? which shows how to add application in launched?
I will be following this tutorial to add into startup, later user can change their preferences if they want, They can choose turn on my app or turn off on startup
To run your app as a status menu only, you add one of the following keys to your info.plist file:
Application is agent (UIElement)
or:
Application is background only
As for switching between the two, Im not sure the best way, but I would suggest making the setup process its own app. (An app with an icon and window) You would than contain the app inside your menu item app, and automatically launch it when the user launches the program...
As Teak mentioned you want the "Application is agent (UIElement)" key in your info.plist. This key means you won't have a dock icon... which is what you want. However there is no need to use the "Application is background only" key. This key prevents you from putting any windows on the screen, which is unnecessary. So I would leave this key out.
In general setup your app so no window automatically is shown at startup. Do some sort of check at launch to see if configuration is needed. If it is then make your configuration window visible. You can even have a "configuration..." menu item in your status menu so your user can pop open the config window any time needed. It's really very simple, but just don't use the "Application is background only" info.plist key.
By the way, it's a little difficult to make a window come to the front. The trick is to make your application come frontmost first like this...
[NSApp activateIgnoringOtherApps:YES];
[someWindow makeKeyAndOrderFront:nil];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With