Cocoa NSOpenPanel位于第三方开源库VSTGUI中,禁用具有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
为inTagClass
,所需的扩展名为inTag
,kUTTypeData
为inConformingToUTI
。如果我将types
参数作为带有简单扩展字符串的数组,而不是UTI,一切都按预期工作。所以我想kUTTypeData
提示类型的exec位设置规则。很遗憾,documentation并未告知inConformingToUTI
可能有效的任何其他值。
答案 0 :(得分:0)
开放式面板很可能有一个委托集,它实现了方法
- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url