0

如何使用 Mountain Lion 显示捆绑包内容[NSWorkspace selectFile:nil inFileViewerRootedAtPath:pathEndingWithDotBundle]?我的意思是:pathEndingWithDotBundle是一个基本名称类似于“folder.bundle”的路径。如果我这样调用这个方法,终端会打开,我不知道为什么......

4

1 回答 1

1

它会打开终端,因为它认为您要启动捆绑包,这是默认应用程序。我会为此打开一个错误报告,因为文档没有说它将打开路径。它说它将在文件查看器中显示它。这是一个错误是合理的(因为包在逻辑上不是目录;它只是物理上的目录)。但是它做一些随机的事情,比如尝试启动另一个程序是没有意义的。

也就是说,它很容易解决。只需选择Contents文件夹,该文件夹必须包含在包中:

[[NSWorkspace sharedWorkspace] selectFile:[pathEndingWithDotBundle stringByAppendingPathComponent:@"Contents"] 
                 inFileViewerRootedAtPath:pathEndingWithDotBundle];

在 10.6+ 中,您可以使用activateFileViewerSelectingURLs:

NSURL *URL = [NSURL fileURLWithPath:[pathEndingWithDotBundle stringByAppendingPathComponent:@"Contents"]];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[URL]];
于 2012-09-26T19:02:58.147 回答