Интерфейс в стиле Finder для разрешения закладки NSURLДанных с отсутствующим файлом? - PullRequest
1 голос
/ 10 февраля 2010

Я использую новый NSURL API данных закладок, представленный в OS X 10.6, чтобы сохранить «псевдоним» для ресурса файловой системы. Когда я использую

+[NSURL URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:]

для разрешения данных закладки, я получаю nil, если файл больше не существует. Поскольку я не передаю NSURLBookmarkResolutionWithoutUI в параметрах разрешения закладок, я ожидал получить диалоговое окно, подобное тому, которое отображается в Finder при открытии файла псевдонимов, который больше не разрешается (то есть диалоговое окно для отмены исправить псевдоним и т.д ...).

Есть ли способ заставить NSURL автоматически запрашивать повторное подключение / устранение поврежденных данных закладки?

Данные закладки создаются с помощью:

NSError *err
NSData *bookmarkData = [myFileURL bookmarkDataWithOptions:NSURLBookmarkCreationSuitableForBookmarkFile
                           includingResourceValuesForKeys:nil
                                            relativeToURL:nil
                                            error:&err];

хотя я получаю тот же результат, если я использую 0 для параметров вместо NSURLBookmarkCreationSuitableForBookmarkFile.

Я пытаюсь разрешить то же самое bookmarkData с помощью:

BOOL stale;
NSError *err
NSURL *resolvedURL = [NSURL URLByResolvingBookmarkData:self.bookmarkData
                                               options:0
                         relativeToURL:nil
                               bookmarkDataIsStale:&stale
                                                 error:&err];

Выполнение танца записи данных закладок в файл псевдонимов поиска и последующего разрешения URL-адреса путем чтения данных закладок из этого файла с последующим вышеописанным способом также не приводит к желаемому результату пользовательского интерфейса (хотя открытие файла псевдонимов в Finder создает желаемый диалог пользовательского интерфейса).

1 Ответ

5 голосов
/ 10 февраля 2010

Нет. Пользовательский интерфейс, потенциально участвующий в разрешении закладок / псевдонимов, отображается, если цель находится на размонтированном файловом сервере, для подключения к которому требуется аутентификация. Диалог переподключения предоставляется Finder в ответ на неразрешимый псевдоним; если вы хотите, чтобы ваше приложение имело похожее поведение, вам нужно будет реализовать его самостоятельно.

...