第三方开源库VSTGUI中的 Cocoa NSOpenPanel禁用具有 exec 权限集的文件。exec 位不是必需的,但它通常似乎是在 Windows 上创建并下载到 OS X 的文件上设置的。
该库用于beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo:
显示面板。给定的types
参数是一个带有基于简单扩展的 UTI 的单例数组。什么可能导致面板不允许这些文件以及如何以及在哪里可以配置行为?
我知道该方法已经或将被弃用,但现在我似乎陷入了困境。我在 OS X 10.8 上,Xcode 中的部署目标是 10.5。
编辑:
这里使用的 UTI 是用函数创建的
CFStringRef UTTypeCreatePreferredIdentifierForTag(CFStringRef inTagClass,
CFStringRef inTag,
CFStringRef inConformingToUTI)
使用kUTTagClassFilenameExtension
as inTagClass
,所需的扩展名 asinTag
和kUTTypeData
as inConformingToUTI
。如果我将types
参数作为具有简单扩展字符串的数组而不是 UTI,则一切都按预期工作。所以我猜想这种kUTTypeData
提示排除了设置了 exec 位的文件。不幸的是,文档没有说明任何其他价值inConformingToUTI
。