gpt4 book ai didi

objective-c - 从代码在 Mac OS X 上设置给定文件扩展名的默认应用程序

转载 作者:太空狗 更新时间:2023-10-30 03:50:20 34 4
gpt4 key购买 nike

我有给定文件扩展名的应用程序列表(使用 LSCopyApplicationURLsForURL)。在从上述调用中选择一个应用程序后,我想从代码更改默认文件关联。有办法做到这一点吗?

最佳答案

这是一个非常相关的任务的代码片段:将您自己设置为给定文件扩展名的默认应用程序:

#import <ApplicationServices/ApplicationServices.h>
#import "LaunchServicesWrapper.h"

@implementation LaunchServicesWrapper


+ (NSString *) UTIforFileExtension:(NSString *) extension {
NSString * UTIString = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)extension,
NULL);

return [UTIString autorelease];
}

+ (BOOL) setMyselfAsDefaultApplicationForFileExtension:(NSString *) fileExtension {
OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType (
(CFStringRef) [LaunchServicesWrapper UTIforFileExtension:fileExtension],
kLSRolesAll,
(CFStringRef) [[NSBundle mainBundle] bundleIdentifier]
);

if (returnStatus != 0) {
NSLog(@"Got an error when setting default application - %d", returnStatus);
// Please see the documentation or LSInfo.h

return NO;
}

return YES;
}


@end

关于objective-c - 从代码在 Mac OS X 上设置给定文件扩展名的默认应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3344157/

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