我正在使用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];
将书签数据写到finder别名文件中,然后通过从该文件中读取书签数据来解析URL,然后执行上述方法,同样无法产生所需的UI结果(尽管在Finder中打开别名文件确实会产生所需的UI对话框)。
最佳答案
否。如果目标位于需要身份验证才能连接的已卸载文件服务器上,则显示可能涉及书签/别名解析的UI。 Finder提供了重新连接对话框,以响应无法解析的别名。如果您希望您的应用程序具有类似的行为,则需要自己实施。
关于cocoa - 用于NSURL书签的Finder风格的UI缺少文件的数据解析?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2232774/