是否可以在 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.
我需要帮助在用户登录时自动启动 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.