您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?

2024-02-24

您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?这意味着在运行时我可以为我的应用程序分配更多扩展来处理。

目前,我为我的应用程序设置了一些扩展来处理 Info.plist 中的 CFBundleDocumentTypes,但我想在应用程序执行时(在运行时)通过代码来执行此操作。基本上,我可以在不修改 Info.plist 文件的情况下使启动服务了解新扩展。

Thanks.


At the moment, there’s no public API1 for an application to dynamically (un)register document types with Launch Services during runtime.

Open Emu http://openemu.org/就面临着这个问题。用户可以有选择地下载/安装模拟器,这些模拟器是其 Info.plist 文件定义文档类型的捆绑包。安装模拟器后,捆绑包中定义的类型需要是应用信息.plist。为此,Open Emu 重写了应用程序 Info.plist — 请参阅-更新 OEGameDocumentController 中的InfoPlist https://github.com/OpenEmu/OpenEmu/blob/master/OpenEmu/OEGameDocumentController.m#L369.

请注意,覆盖捆绑包 Info.plist 违反了 Mac App Store 的政策。

We have 场雷达 http://bugreport.apple.com要求运行时(取消)注册文档类型。我建议您也提交另一份文件,该文件应作为以下文件的副本关闭#2526726 http://rdar/problem/2526726。即使它是重复的,无论如何也必须将其归档,以便苹果公司估算需要此功能的人数。

1It might be possible via SPI, though. When I was looking into this, I stumbled upon _LSRegisterItemFromItemInfo() in Launch Services.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗? 的相关文章

  • 如何在 NSTextView 中使用 SPACE 而不是 TAB

    我只知道如何修改 NSTextView 中的制表符宽度 NSMutableParagraphStyle paragraphStyle self defaultParagraphStyle mutableCopy paragraphStyle
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • Cocoa - 捕获 NSStatusItem 鼠标悬停事件

    当用户的鼠标悬停在我的 NSStatusItem 上时 如何执行函数 如果您分配自定义NSView给你的NSStatusItem s view属性 您可以覆盖NSResponder方法mouseEntered mouseMoved and
  • 在 MAC OS X 10.9 上安装 NLTK 确实很困难

    我是 Python Mac OS 新手 我正在寻找 NLTK 教科书 但我在安装它时遇到了一些问题 我一直在寻找解决方案 但不幸的是 所有解决方案似乎都不适合我 或者我误解了如何使用它们 我遇到的基本问题是 尽管按照说明进行操作 NLTK
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 在可可中将 NSMutableArray 写入文件时出现问题

    一个真正的初学者问题 我有一个 NSView 子类 在其中创建一个包含 NSValues 的 NSMutableArray 当我想使用 writetofile atomatically 将数组写入文件时 文件已创建 但它不包含可变数组所包含
  • Android Studio 无法在 Mac OSX (Mavericks) 上加载 JVM

    我正在尝试在我的 Mac 上设置 Android Studio 它运行的是 OSX 10 9 1 Mavericks 我已经安装了最新的 JDK 在撰写本文时为 1 7 update 45 并且安装了 Android Studio 我使用
  • Qt:更改 Mac OS X 上的应用程序 QMenuBar 内容

    我的应用程序对多个 页面 使用 QTabWidget 其中顶级菜单根据用户所在的页面而变化 我的问题是 尝试重新创建菜单栏的内容会导致严重的显示问题 它在除 Mac OS X 之外的所有平台上按预期使用第一种和第三种样式 尚未测试第二种 但
  • 更改 macOS 应用程序中打开窗口中的文档

    我正在为 macOS 编写一个基于文档的应用程序 我正在尝试编写一项功能来更改当前窗口中的活动文档 以便能够循环浏览文件夹中的下一个 上一个文档 就像使用图像浏览器应用程序一样 我应该调用什么命令来在当前窗口中打开不同的文档 文档表明 op
  • Android Studio 无法运行 Xcode 模拟器

    我正在尝试使用 Xcode iPhone 模拟器模拟我的 Flutter 应用程序 但收到此错误 在升级 Android Studio 和 Xcode 之前 它运行良好 Launching lib main dart on iPhone X
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • NSUserNotificationCenter.defaultUserNotificationCenter() 使用 PyInstaller 返回 None

    我正在尝试将通知发送到通知中心 Mac OSX 我正在使用 PyObjC 绑定来使用我们的 python 应用程序中的 cocoa api 我正在使用以下代码片段 import Foundation import objc NSUserNo
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • npm 命令 create-react-app 失败

    我正在尝试在运行 Os X sierra 10 12 6 的计算机 mac pro 2017 上测试reactjs 我已经遵循了 Facebook 教程 确保您安装了最新版本的 Node js done 按照安装说明进行操作创建一个新项目
  • 如何表示Apple 发布的Mac OSX 崩溃报告?

    对于 iOS 崩溃报告 将崩溃报告拖放到管理器中就足够了 符号化 iPhone 应用程序崩溃报告 https stackoverflow com questions 1460892 symbolicating iphone app cras
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • C“睡眠”函数(大写“S”)在 Mac 上有什么作用?

    注意其中的大写 S Sleep Sleep大写 S 是在 PC 上休眠毫秒的标准函数 在 Mac OS X 上 没有这样的符号 然而 Xcode 链接环境似乎找到了可以链接到的东西 它是什么 嗯 这是一个古老的 Carbon 函数 在 Co
  • libtiff 错误:未配置旧式 JPEG 压缩支持

    在 Mac OS X 上使用 libtiff 将 TIFF 转换为 BMP 时 出现以下错误 scannerdata tif Old style JPEG compression support is not configured scan

随机推荐

  • 如何在 Ruby 中对数组进行分组和求和?

    我有一个像这样的数组 ar 5 2014 01 27 20 2014 01 28 5 2014 01 28 10 2014 01 28 15 2014 01 29 5 2014 01 29 5 2014 01 30 10 2014 01 3
  • JavaScript 中的堆和本机内存分配:如何管理?

    JavaScript 有堆 垃圾收集 内存和本机 类型数组 DOM 元素 内存 问题 两者之间是否存在平衡 以便如果我想要大量类型化数组 它可以工作 但只是减少堆 可以这么说 通常的模型是分配内存 使得本机从顶部开始 堆在底部开始 当需要更
  • AVPlayer连接丢失重启

    我正在使用 AVPlayer 对象在我的 iOS 应用程序中播放远程广播流 该流工作正常并在后台播放 进行一些连接测试时我遇到了一些问题 一旦播放器连接丢失 播放器就会停止 如您所料 但是当连接恢复时我无法使播放器再次开始 我粗略地设置了一
  • 如何在带有输入的地图元素方法上使用 std::for_each ?

    I have struct Mystruct void Update float Delta typedef std map
  • 断言错误:传入的类型不是 ComponentType,它没有 'ɵcmp' 属性

    每当应用程序运行时 我都会收到此错误 尽管在当前的开发中不会给我带来问题 我认为 我想了解此错误并知道它来自哪里 因为我完全迷失了 我什至无法发布相关内容代码 但我会尝试 这些是主要路线 appModule const routes Rou
  • Gradle 与 QueryDSL 4.1.4 和 Intellij

    我正在尝试在 Spring Boot 1 5 2 项目中识别 queryDSL 1 4 1 的 Q 类 IDE 是 Intellij Ultimate 构建 gradle buildscript ext springBootVersion
  • Silverlight 与 C++.Net

    您可以使用 C Net 编写 Silverlight 应用程序吗 不使用C 或VB Net作为后端语言 而是使用C Net 您可以使用任何语言 只要它编译为纯托管代码即可 例如 有使用 IronPython IronRuby 的 Silve
  • C++ 异常 - 抛出字符串

    我的代码有一个小问题 由于某种原因 当我尝试使用下面的代码抛出字符串时 我在 Visual Studio 中收到错误 include
  • AlertDialog setmessage 在 Asynctask 内不起作用

    下面是我尝试通过 onProgressUpdate 方法在 Asynctask 中显示进度的代码 但它不会显示在警报对话框中 仅显示初始消息 class DownloadFileFromURL extends AsyncTask
  • TaskFactory.StartNew -> System.OutOfMemoryException

    大约有 1000 个任务正在运行 但有时我会收到任务计划程序抛出的以下内存不足异常 可能是什么原因以及如何避免它 System Threading Tasks TaskSchedulerException An exception was
  • 反应渲染逻辑 && 与三元运算符

    在反应中render 当 x 的值等于 1 时 逻辑 和三元运算符都会显示Hello并且两者在语法上都是正确的 当我不想显示我的条件的其他部分时 我总是使用 但我遇到过一个代码库 其中大多数地方都使用三元运算符null代替 使用一种方法相对
  • 使用 Spark 2.0.1 将数据写入 Redshift

    我正在做一个 POC 我想将一些简单的数据集写入 Redshift 我有以下 sbt 文件 name Spark POC version 1 0 scalaVersion 2 10 6 libraryDependencies org apa
  • 使用 iText pdfHTML 的 PDF 页面大小和格式

    我正在尝试使用 iText7 1 0 和 pdfHTML2 0 0 将 3 个 HTML 页面 均具有相同内容 导出为 PDF这个例子 https developers itextpdf com content itext 7 conver
  • 从 Python 中的“enchant suggest()”获取最相关的单词(拼写检查)

    我想从中获取最相关的单词enchant suggest 有没有更好的方法来做到这一点 我觉得我的函数在检查 100k 或更多范围内的大量单词时效率不高 有问题enchant suggest gt gt gt import enchant g
  • 如何在 Outlook 中添加默认签名

    我正在 Access 中编写一个 VBA 脚本 用于创建并自动填充几十封电子邮件 到目前为止 编码很顺利 但我是 Outlook 新手 创建 mailitem 对象后 如何将默认签名添加到电子邮件中 这将是创建新电子邮件时自动添加的默认签名
  • 如何处理 data.table 中的列表列

    在合并数据的过程中 我经常会得到列表列 例如 左表中的一行在右表中有多个匹配项 让我们定义一下 DT data table x list c 1 2 c 3 4 5 y list c T T c T F T z c 1 2 N c 1L 2
  • 让 javaFX 11 应用程序在 docker 上运行

    我正在尝试让一个在我的机器上完美运行的应用程序在 docker 上运行 这是我的 docker 文件 FROM openjdk 11 jre slim VOLUME tmp ADD someJar jar someJar jar ADD l
  • 如何在 @code 块内编写 Blazor HTML 代码?

    如何在 Blazor 内部的函数中编写 Blazor HTML 代码 code block 考虑以下代码 page Test if option 1 drawSomething Something else drawSomething So
  • 如何获取表单的截图

    有什么方法可以输出活动表单的屏幕截图吗 NET 支持的更简单的答案 控件 DrawToBitmap http msdn microsoft com en us library system windows forms control dra
  • 您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?

    您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗 这意味着在运行时我可以为我的应用程序分配更多扩展来处理 目前 我为我的应用程序设置了一些扩展来处理 Info plist 中的 CFBundle