gpt4 book ai didi

objective-c - SMLoginItemSetEnabled(...) GET 对应项

转载 作者:太空狗 更新时间:2023-10-30 03:12:02 28 4
gpt4 key购买 nike

对于沙盒应用,要创建启动项,Apple 建议您使用 LSRegisterURL(..)SMLoginItemSetEnabled(..) 以及辅助工具。我已经按照我想要的方式设置了所有内容,但我想要一种方法(不存储首选项值)来获取“如果已注册”的状态。基本上是一种执行与 SMLoginItemGetEnabled(...) 相同操作的方法。

编辑:感谢 Rob Keniger 的回答,这是我的最终代码:

- (BOOL)startAtLogin {
NSDictionary *dict = (NSDictionary*)SMJobCopyDictionary(kSMDomainUserLaunchd,
CFSTR("com.yourcompany.app"));
BOOL contains = (dict!=NULL);
[dict release];
return contains;
}

最佳答案

接受的答案对我不起作用。此博客说“//注意:使用 SMJobCopyDictionary() 时的沙箱问题”,这一定是问题所在。因此,如果您在沙盒中使用此处接受的答案时遇到问题,请尝试使用此方法。为我工作。

这一切都归功于 Mike Cohen。有关更多信息,请参阅他的博客文章:

http://blog.mcohen.me/2012/01/12/login-items-in-the-sandbox/

-(BOOL)appIsPresentInLoginItems
{
NSString *bundleID = @"com.madebynotion.myLoginHelper";
NSArray * jobDicts = nil;
jobDicts = (NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );
// Note: Sandbox issue when using SMJobCopyDictionary()

if ( (jobDicts != nil) && [jobDicts count] > 0 ) {

BOOL bOnDemand = NO;

for ( NSDictionary * job in jobDicts ) {

if ( [bundleID isEqualToString:[job objectForKey:@"Label"]] ) {
bOnDemand = [[job objectForKey:@"OnDemand"] boolValue];
break;
}
}

CFRelease((CFDictionaryRef)jobDicts); jobDicts = nil;
return bOnDemand;

}
return NO;
}

关于objective-c - SMLoginItemSetEnabled(...) GET 对应项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219920/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com