NSURL bookmarkData解析器的Finder风格UI,缺少文件?

时间:2010-02-09 21:47:48

标签: cocoa macos nsurl

我正在使用OS X 10.6中引入的新NSURL书签数据API来存储文件系统资源的“别名”。当我使用

+[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也不会产生所需的UI结果(尽管打开了别名文件) Finder确实生成了所需的UI对话框。)

1 个答案:

答案 0 :(得分:5)

没有。如果目标位于需要身份验证连接的卸载文件服务器上,则显示可能涉及书签/别名解析的UI。重新连接对话框由Finder提供,以响应不可解析的别名;如果您希望您的应用程序具有类似的行为,您需要自己实现它。