Почему я могу выбрать псевдонимы, но не символические ссылки в NSOpenPanel? - PullRequest
0 голосов
/ 10 октября 2008

Я хочу создать 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).

Ответы [ 2 ]

1 голос
/ 10 октября 2008

Я не могу воспроизвести это. Я только что попробовал, и это работает просто отлично. Если символическая ссылка указывает на каталог, при выборе символической ссылки отображается содержимое каталога, а если символическая ссылка указывает на файл, я также могу выбрать его.

Конечно, если символическая ссылка указывает на каталог, вы можете выбрать его, только если разрешен выбор каталогов

NSOpenPanel * panel = [NSOpenPanel openPanel];
[panel setCanChooseDirectories:YES];
if ([panel runModalForTypes:nil] == NSOKButton) {
    NSLog(@"%@", [panel filenames]);
}
0 голосов
/ 11 октября 2008

Ваш пример кода сработал и для меня - я использую 10.5.5 и XCode 3.1, если это имеет значение.

Если псевдоним находится в каталоге, я не мог выбрать псевдоним, поскольку он разрешался в каталог, на который он указывал, а не в сам псевдоним (по-видимому, панель разрешает псевдонимы по умолчанию). Я смог выбрать псевдоним для файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...