首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在代码中为Mac OS X上的给定文件扩展名设置默认应用程序

在代码中为Mac OS X上的给定文件扩展名设置默认应用程序,可以使用以下方法:

  1. 使用LaunchServices框架:
代码语言:swift
复制
import Foundation
import LaunchServices

func setDefaultApplication(forExtension ext: String, bundleID: String) -> Bool {
    let ext = ext as CFString
    let bundleID = bundleID as CFString
    let error = LSSetDefaultHandlerForURLScheme(ext, bundleID)
    return error == noErr
}

let extension = "txt"
let bundleID = "com.apple.TextEdit"
let success = setDefaultApplication(forExtension: extension, bundleID: bundleID)

if success {
    print("成功设置\(extension)文件的默认应用为\(bundleID)")
} else {
    print("设置失败")
}
  1. 使用duti命令行工具:
代码语言:swift
复制
import Foundation

func setDefaultApplication(forExtension ext: String, bundleID: String) -> Bool {
    let task = Process()
    task.launchPath = "/usr/bin/duti"
    task.arguments = ["-s", bundleID, ext]
    task.launch()
    task.waitUntilExit()
    return task.terminationStatus == 0
}

let extension = "txt"
let bundleID = "com.apple.TextEdit"
let success = setDefaultApplication(forExtension: extension, bundleID: bundleID)

if success {
    print("成功设置\(extension)文件的默认应用为\(bundleID)")
} else {
    print("设置失败")
}

这两种方法都可以实现为Mac OS X上的给定文件扩展名设置默认应用程序。使用LaunchServices框架的方法需要导入FoundationLaunchServices模块,而使用duti命令行工具的方法则需要导入Foundation模块。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券