2013-05-04 56 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

相關問題