是否可以在 mac 开机时自动启用该应用程序

is it possible to enable the app automatically when mac is powred on

我需要帮助在用户登录时自动启动 os x 应用程序,如上图所示以编程方式启用刻度标记

看看SMLoginItemSetEnabled,请在下面找到一个Objective-C启用自动启动方法的副本,我在一个旧项目中使用过:

- (IBAction)setAutoStart:(id)sender {

    // save the user preference:
    [[NSUserDefaults standardUserDefaults] setBool:[sender state] forKey:@"AutoStart"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    // enable or disable it:
    if ([sender state] == 1) { 
        // loginController.startAtLogin = YES;
        if (!SMLoginItemSetEnabled ((__bridge CFStringRef)@"com.yourproject", YES)) {
            NSLog(@"fail");
        }
    } else if ([sender state] == 0) { 
        //loginController.startAtLogin = NO;
        if (!SMLoginItemSetEnabled ((__bridge CFStringRef)@"com.yourproject", NO)) {
            NSLog(@"fail");
        }
    }

}

理论上很简单,你只需要调用这个function:

SMLoginItemSetEnabled("com.your.app" as CFString, true)

问题是您的应用程序无法注册其自己的应用程序标识符(不幸的是),因此要能够注册它,您必须再创建一个 'igniter' 应用程序。你可能会找到一个很好的解释 here.