0

NSOpenPanelどんな種類のファイルでも選択できるを作りたいのでこうします

NSOpenPanel*    panel = [NSOpenPanel openPanel];

if([panel runModalForTypes:nil] == NSOKButton) {
    // process files here
}

これにより、シンボリック リンクを除くすべてのファイルを選択できます。
それらは単に選択可能ではなく、明らかなsetResolvesAliases
ものは何もしません。

何を与える?

更新 1:さらにテストを行ったところ、この奇妙な点
は Leopard (10.5.5) には存在するが、Tiger (10.4.8) には存在しないことがわかりました。

更新 2:上記のコードは、mac エイリアス (
リソース フォークに存在する永続的なパス データ) を選択できますが、シンボリック リンク (ln -s で作成されたファイル) は選択できません。

4

2 に答える 2

1

これを再現できません。私はそれを試してみましたが、うまくいきます。シンボリックリンクがディレクトリを指している場合、シンボリックリンクを選択するとディレクトリの内容が表示され、シンボリックリンクがファイルを指している場合は、それも選択できます。

もちろん、シンボリックリンクがディレクトリを指している場合、ディレクトリの選択が許可されている場合にのみ選択できます

NSOpenPanel * panel = [NSOpenPanel openPanel];
[panel setCanChooseDirectories:YES];
if ([panel runModalForTypes:nil] == NSOKButton) {
    NSLog(@"%@", [panel filenames]);
}
于 2008-10-10T15:49:58.410 に答える
0

あなたのコードサンプルも私にとってはうまくいきました.10.5.5とXCode 3.1を使用しています.

エイリアスがディレクトリに対するものである場合、エイリアス自体ではなく、それが指しているディレクトリに解決されるため、エイリアスを選択できませんでした (パネルはデフォルトでエイリアスを解決するようです)。ただし、ファイルへのエイリアスを選択することはできました。

于 2008-10-10T23:20:06.613 に答える