0

私は Mac 用の C プログラムを書いています。Apple イベントを送信するアプリケーションをユーザーが選択できるようにする必要があります。を使用してナビゲーション ウィンドウを作成できますが、NavCreateChooseFileDialog().app ファイルを有効にすることができません。を使用してタイプを制限するNavDialogSetFilterTypeIdentifiersと、フォルダー名に .app がない MS Office などのアプリケーションのみを選択できます。他のすべてはグレー表示されます。

何か案は?

4

3 に答える 3

0

.appバンドルはディレクトリであるため、ある種のallow-directories(または、より可能性が高いのはenable-bundles)オプションを有効にする必要がある場合があります。

これ以上具体的なサポートを提供できないことをお詫び申し上げます。私はCarbonから始めましたが、NavigationServicesに触れたことはありませんでした。

于 2009-01-10T08:19:09.970 に答える
0

これは私のために働く:

NSOpenPanel * panel = [ NSOpenPanel openPanel ] ;
panel.allowedFileTypes = @[ (__bridge id)kUTTypeApplication ] ;

[ panel runModal ] ;
于 2014-04-15T06:01:51.747 に答える
0

NavCreateChooseFileDialog の inOptions.optionFlags でフラグ kNavSupportPackages を設定し、タイプ リストに 'APPL' を入れてください (NavDialogSetFilterTypeIdentifiers() の代わりにそのパラメーターを使用することもできます。そうすれば、10.3 で実行できます)。行ってもいいです、私はちょうど試しました。

または、Cocoa を使用してもかまわない場合は、-[NSOpenPanel runModalForTypes:[NSArray arrayWithObjects:@"app", nil]] (.app 以外のアプリケーションもリストします) を使用できます。 ((UInt8*)[path fileSystemRepresentation], &fsRef, NULL); FSRef から離れています。

どちらの場合でも、取得するファイルはエイリアスである可能性があるため、エイリアスを解決する必要があることに注意してください。

于 2009-03-20T22:57:48.667 に答える