0

サード パーティのオープン ソース ライブラリVSTGUIの Cocoa NSOpenPanel は、実行権限が設定されているファイルを無効にします。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)

kUTTagClassFilenameExtensionas 、inTagClass目的の拡張子 asinTagおよびkUTTypeDataasを使用しinConformingToUTIます。UTItypesではなく、単純な拡張文字列を含む配列としてパラメーターを指定すると、すべてが期待どおりに機能します。kUTTypeDataしたがって、ヒントのようなものは、実行ビットが設定されたファイルを除外すると思います。残念ながら、ドキュメントには、それが機能する他の値は記載されていませんinConformingToUTI

4

1 に答える 1

-1

ほとんどの場合、開いているパネルにはメソッドを実装するデリゲート セットがあります。

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

または類似。NSOpenSavePanelDelegate プロトコル リファレンスを参照してください。

于 2013-05-04T19:18:40.263 に答える