问题标签 [uti]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 如何在 plist 文件中定义统一类型标识符?
我的应用程序使用以下NSApplicationDelegate
功能。
我想使用此功能使用户能够将图像文件拖放到 Dock 中的应用程序图标上。
如何在我的plist
文件中定义某些文件类型以将它们限制为图像?我发现结构必须看起来像这样。
我将它添加到plist
文件中,但它不起作用。弹出窗口显示以下错误消息。
无法打开文档“test.jpg”。MyApp 无法打开“JPEG 图像”格式的文件。
此外,我在文档中读到public.image
了我想要定义的内容。
同时,我发现如果我使用“创建基于文档的应用程序”选项创建一个 Cocoa 应用程序,该plist
文件只包含密钥CFBundleDocumentTypes
。您能否澄清一下该选项存在哪些依赖项?
cocoa - public.composite-content (kUTTypeCompositeContent) 是什么类型的文件?
我正在编写一个文件导入器并想要处理pdf类型。我看到com.adobe.pdf ( kUTTypePDF
) 并public.composite-content
输入。
统一类型标识符参考文档:
混合内容的基本类型。例如,PDF 文件包含文本和特殊格式数据。
有人可以举一个这种类型的文件的例子吗?
iphone - 用于从另一个应用程序打开文件的 Documents/Inbox 文件夹
我注册了我的应用程序以关联一些文件类型。所以当文件出现在邮件附件中时,我使用我的应用程序打开文件。我的应用程序将在我的 Documents 文件夹中自动创建一个“收件箱”文件夹,并将文件保存在“收件箱”中。这个收件箱很特别,因为它阻止我通过程序创建文件夹或将文件移动到其中。
我的问题是:
“收件箱”有什么特别之处?我可以更改一些设置,它会允许我在里面创建一个子文件夹吗?
什么是正常的解决方案?
谢谢
卡伦
objective-c - 从 plist 中检索允许的文件类型的智能方法
设想:
我喜欢在Info.plist
我的 Cocoa 应用程序的文件中定义允许的文件类型(内容类型)。因此,我像下面的示例所示添加了它们。
此外,我的应用程序允许使用NSOpenPanel
. 该面板允许通过以下选择器设置允许的文件类型:setAllowedFileTypes:
. 文档说明可以使用UTI 。
文件类型可以是通用文件扩展名或 UTI。
自定义解决方案:
Info.plist
我编写了以下辅助方法来从文件中提取 UTI 。
代替[NSBundle mainBundle]
也CFBundleGetInfoDictionary(CFBundleGetMainBundle())
可以使用。
问题:
- 你知道从
Info.plist
文件中提取内容类型信息的更聪明的方法吗?有 Cocoa 内置功能吗? - 您如何处理可以包含在那里的文件夹的定义,例如
public.folder
?
注意:
在我的研究中,我发现这篇文章信息量很大:使用统一类型标识符简化数据处理。
iphone - 其他应用在 iOS 5 中粘贴 HTML 而不是我们粘贴板数据的文本版本
我们有一个现有的应用程序,允许用户将文本复制到粘贴板。在可能的情况下,我们将 HTML 和纯文本都放在剪贴板上,因为我们不知道用户可能会粘贴到哪个其他应用程序中,并且希望同时提供格式化 (HTML) 和未格式化的数据。
此功能在 iOS 3 和 4 中运行良好。但一旦用户安装 iOS 5,当他们将文本从我们的应用程序粘贴到任何其他应用程序时,其他应用程序会获取 HTML 文本但将其视为纯文本。因此,如果他们选择并复制 H1 标题,当他们粘贴到其他应用程序时,他们看到的不是“这是一个标题”,而是“<h1>这是一个标题</h1>”。
请注意,这是在 iOS 3 和 4 中正常工作的现有代码。在 iOS 3、4 和 5 之间,我们的代码没有变化。
为了完整起见,这是我们用来将文本放在粘贴板上的代码,提供了一个简单的字符串仅供参考:
显然,我的问题是“为什么 iOS 5 应用程序在请求纯文本时会获取 HTML 文本,而在 iOS 4 下运行的同一个应用程序会获取纯文本?”
macos - 动态尿路感染稳定吗?
我的文件格式没有声明 UTI,因此 Launch Services 已为其分配了一个动态 UTI ( dyn.ah62d4rv4ge81g23wsmw1a5dbte
)。我无法控制这些文件的 UTI。
碰巧我想为该格式开发一个 Quick Look 生成器,并且 Quick Look 生成器仅依赖于文档 UTI,并且将忽略其属性列表中存在的任何其他类型的文档标识(例如创建者代码和扩展名)。
在开发人员添加一个之前,我使用动态 UTI 是否安全?那些是由稳定的算法生成的,很有可能为另一台机器上的相同文件返回相同的 UTI?
ios - iOS 文档/文件类型关联 - 通配符 UTI?
我有一个应用程序,它是一个通用文件管理器。我希望使用 QLPreviewController、UIDocumentInteractionController 等的应用程序中的“打开方式...”功能能够向我的应用程序发送任何文件类型。
我已经创建了一个文档类型,但是无论“类型”设置为“*”、“public.*”还是类似的组合,我都无法让应用程序在非特定情况下显示(如果我更改UTI 到 com.adobe.pdf,例如)。
在 Mac OS X 上,可以将应用程序设置为所有文件类型的通用查看器 - 这在 iOS 上是不可能的吗?
编辑
通过文档,我发现只有少数原始 UTI 类型,所有其他类型都继承自
其中,许多显然永远不会成为文件的实例。
我可能过于雄心勃勃地尝试创建通配符测试:我尝试了 public.item 并且它适用于邮件中的 pdf 文件。由于文档声明 public.item 是“物理层次结构的基本类型。”,这可能意味着这是通配符,即“public.item = *”
在最坏的情况下,我可以添加项目、内容、数据库和存档,并希望获得最好的结果。最好的情况,项目涵盖一切。
macos - Finder 没有看到我的尿路感染
我试图告诉 OSX 的 Finder,我的电子邮件客户端应用程序可以打开 .eml 文件,但到目前为止进展并不顺利。我从 Mail.app 的 plist 中取了一片,几乎直接复制了大部分 UTI 值,只是将 UTTypeIdentifier 更改为我自己的公司。
就目前而言的 plist:
有什么明显的地方我做错了吗?
objective-c - UIDocumentInteractionController,没有文件扩展名但 UTI
如何知道应用程序支持哪个 UTI 将文件发送到不同的应用程序?假设该文件没有文件扩展名,但我碰巧知道该文件的 UTI。
我尝试了以下方法:
它显示支持的应用程序,但是,如果我选择它,它不会切换应用程序。代表打电话给
但
永远不会被调用,并且应用程序永远不会切换。
目标 App 以如下方式导出其 UTI:
由于这不起作用,我还尝试添加自定义扩展。不过,它不会以这种方式工作。将自定义扩展名添加到我移交给的文件时DocumentInteractionController
,它可以工作。但是,应用程序列表显示了支持相同文件扩展名的所有其他应用程序,无论 I 提供的 UTI 类型如何。
假设我在 2 个不同的应用程序中声明了 2 个 UTI:
当将文件交给 DocumentInteractionController 并将 UTI 设置为com.mycomp.a
它时,也会将 App2 显示为能够处理文件的可能应用程序。
我以以下方式定义了一个带有扩展名的UTI:
我真的很感谢你的帮助,我有点卡住了。所以,又是一个问题:如何将文件发送到具有已知 UTI 的应用程序,或者没有扩展名,或者与我不想在 DocumentInteractionController 中将应用程序显示为选项的其他文件具有相同的扩展名?
谢谢
objective-c - 自定义 UTI 未在 App 中打开
我正在尝试为我的应用程序创建一个新的文档 UTI,以便人们可以与他人分享兴趣点。根据我对 SO、Tutorials 和 Apple 文档的理解,您需要执行以下操作:
- 在 .plist 中创建文档类型
- 创建与其对应的导出 UTI
- 使用方法:-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
据我了解,只要您做对了,您应该可以通过Mail打开文件而没有任何问题。不幸的是,它不适用于我自己的自定义 UTI。我确实在邮件的“打开方式...”列表中看到了我的应用程序,但是当我选择它时,我的应用程序根本没有打开。它根本不做任何事情,不仅在应用程序未打开时,而且在应用程序打开时。邮件保持不变,根本没有任何反应。我还使用“Organizer”检查了控制台,绝对没有发生任何事情。
最初我认为我的 plist 是错误的,所以我测试了打开一个公共 UTI(我添加了 com.adobe.pdf 文档类型)并且我的应用程序启动得很好(尽管它很快就崩溃了,因为我实际上不支持 PDF;))。但关键是它启动时没有任何问题。
我唯一能想到的可能是一个问题是我如何创建文件。我正在使用此方法在电子邮件中创建文件(也在要导出的应用程序中):
这有什么问题吗?
另外,这是我的 plist 代码:
CFBundleDocumentTypes:
UTExportedType声明:
非常感谢您的帮助!!-标记