如何在Mac OS上将应用设置为默认值?

时间:2013-02-07 06:26:25

标签: objective-c macos cocoa

美好的一天,我想为具有可可框架的文件类型设置我的应用程序默认值。现在我写下一个代码:

bool setappasdefualt()
{
    OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType(CFSTR(".txt"), kLSRolesAll, (CFStringRef) [[NSBundle mainBundle] bundleIdentifier]);
    if (returnStatus != 0) 
    {
        NSLog(@"Got an error when setting default application - %ld", returnStatus);
        return false;
    }
    return true;
}

但在执行后会收到错误50.我做错了什么?

1 个答案:

答案 0 :(得分:4)

" .txt"是文件扩展名,而不是统一类型标识符(UTI)。

您需要使用适当的UTI,例如CFSTR("public.plain-text")

用户Guillaume编写了一个很好的小函数来将文件扩展名转换为UTI' s you can see it here, named "UTIforFileExtension:"(如果有帮助,你应该回答他的答案: - )