/CCNLaunchAtLoginItem

An Objective-C class that encapsulates the functionality for launching a Mac application automatic on login, presented in a very simple interface.

Primary LanguageObjective-CMIT LicenseMIT

Flattr this git repo

Overview

CCNLaunchAtLoginItem is a Objective-C class that encapsulates the functionality for launching a Mac application automatic on login, presented in a very simple interface.

NOTE: THIS PIECE OF CODE DOESN'T WORK WITH SANDBOXED APPLICATIONS!

Integration

You can add CCNLaunchAtLoginItem by using CocoaPods. Just add this line to your Podfile:

pod 'CCNLaunchAtLoginItem'

Usage

The general use case couldn't be simpler. Somewhere in your preferences view controller place a checkbox, add an appropriate NSButton property, name it launchAtLoginCheckbox (just like in the example below), add an IBAction, whire all the stuff and you're nearly done:

- (void)viewDidLoad {
   ...
   // init the login item
   self.loginItem = [CCNLaunchAtLoginItem itemForBundle:[NSBundle mainBundle]];
   // restore the current state
   self.launchAtLoginCheckbox.state = ([self.loginItem isActive] ? NSOnState : NSOffState);
   ...
}

- (IBAction)launchAtLoginCheckboxAction:(NSButton *)launchAtLoginCheckbox {
    switch (launchAtLoginCheckbox.state) {
        case NSOnState:     [self.loginItem activate]; break;
        case NSOffState:    [self.loginItem deActivate]; break;
    }
}

That's all!

Requirements

CCNLaunchAtLoginItem was written using ARC and "modern" Objective-C 2. At the moment it has only support for OS X 10.10 Yosemite. OS X 10.9 Mavericks should work too, but it's untested yet.

Contribution

The code is provided as-is, and it is far off being complete or free of bugs. If you like this component feel free to support it. Make changes related to your needs, extend it or just use it in your own project. Pull-Requests and Feedbacks are very welcome. Just contact me at [phranck@cocoanaut.com](mailto:phranck@cocoanaut.com?Subject=[CCNLaunchAtLoginItem] Your component on Github) or send me a ping on Twitter @TheCocoaNaut.

Documentation

The complete documentation you will find on CocoaDocs.

License

This software is published under the MIT License.