2013-05-04 65 views
0

Cocoa NSOpenPanel在第三方开源库VSTGUI中禁用了具有exec权限集的文件。执行位不是必需的,但它似乎经常在Windows上创建的文件中设置并下载到OS X.如何在NSOpenPanel中允许具有exec权限的文件?

库使用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,所期望的扩展作为inTagkUTTypeData作为inConformingToUTI创建。如果我将types参数作为具有简单扩展字符串的数组而不是UTI,则所有内容都按预期工作。所以我想kUTTypeData暗示有一些规则与设置可执行位的文件。不幸的是,documentation没有告诉inConformingToUTI的任何其他值。

回答

0

最有可能的开放面板具有代表组,它实现了方法

- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url 

或相似。请参阅NSOpenSavePanelDelegate Protocol Reference

+0

不,不幸的是情况并非如此。 – 2013-05-04 19:41:38

相关问题