Objective-C获取默认应用程序

Objective-C获取默认应用程序,objective-c,macos,Objective C,Macos,我需要得到默认的应用程序:防火墙,邮件,办公室,防病毒。 类似于Windows中存在的内容: 我想OSX也有类似的功能,可以通过编程进行检索 我已成功获取邮件应用程序,但我不知道如何获取其他应用程序: CFURLRef mailURL = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("mailto://"), NULL); CFURLRef mailAppURL = NULL; OSStatus ret = 0; if((ret = LSGe

我需要得到默认的应用程序:防火墙,邮件,办公室,防病毒。 类似于Windows中存在的内容: 我想OSX也有类似的功能,可以通过编程进行检索

我已成功获取邮件应用程序,但我不知道如何获取其他应用程序:

CFURLRef mailURL = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("mailto://"), NULL);
CFURLRef mailAppURL = NULL;
OSStatus ret = 0;
if((ret = LSGetApplicationForURL(mailURL, kLSRolesAll, NULL, &mailAppURL)) == 0) {
  CFStringRef path = CFURLCopyFileSystemPath(mailAppURL, kCFURLPOSIXPathStyle);
}

谢谢大家!

Mac OS X没有用于活动或任务的默认程序,但它有用于URL方案和文件扩展名的默认程序。与mail的代码一样,您可以通过查找http URL方案的默认处理程序来查找默认web浏览器。至于媒体播放器,您可以选择.mp4或.mp3等媒体类型,然后使用
LSGetApplicationForInfo
获取其默认处理程序,但我认为.mp4和.mp3可能有不同的默认处理程序。我不知道如何找到默认的防病毒程序或防火墙

标题要求使用Objective-C方法,我想可以使用
-[NSWorkspace urlforapplicationopenurl:
而不是启动服务函数