可以在mac启动时自动启用应用程序

时间:2018-01-30 05:50:17

标签: swift macos login launch

[

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

2 个答案:

答案 0 :(得分:0)

看看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");
        }
    }

}

答案 1 :(得分:0)

从理论上来说,这很简单,你只需要调用function

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

问题是您的应用程序无法注册自己的应用程序标识符(不幸的是),因此为了能够注册它,您必须制作另一个“点火器”。应用。您可以找到一个很好的解释here