objective-c - 使用 NSOutlineView 作为文件浏览器,从给定目录开始

标签 objective-c cocoa nsfilemanager nsoutlineview

我一直在按照本教程使用 NSOutlineView 作为分层文件浏览器:

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/OutlineView/Articles/UsingOutlineDataSource.html

我使用了教程中的所有代码并且它有效。但是,我随后尝试使用 / 以外的路径调用 initWithPath: ,但它不起作用:顶部项目的 fullPath (即 initWithPath 中指定的文件夹只是文件夹的名称,并且 FileSystemItemchildren 方法返回一个空数组,我假设因为文件管理器正在查找 /FolderName/ 而不是绝对路径,而绝对路径似乎永远不会被保存。

如何修改此代码以允许其执行此操作?

最佳答案

上面的代码几乎可以工作。一旦您尝试打开文件夹,它就会崩溃。尝试一下这个修改。它非常适合我:

- (id)initWithPath:(NSString *)path parent:(FileSystemItem *)parentItem {
  if (self = [super init]) {
    relativePath = [path copy];
    parent = parentItem;
  }
 return self;
}

关于objective-c - 使用 NSOutlineView 作为文件浏览器,从给定目录开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636416/

相关文章:

ios - 在 UINavigationController 中第一次运行时推送 View

objective-c - Cocoa:在 safari 中打开 URL 并强制开始从该 URL 下载内容

performance - PDF文档数据表示很慢...如何显示进度?

objective-c - 为什么 NSWindow 不恢复其状态(在 Lion 中使用 Resume)?

objective-c - 权限被拒绝,由 NSURL 资源泄漏引起?

ios - 下载大文件

objective-c - 正确处理 [[NSURLConnection alloc] initWithRequest : . .. ]

objective-c - iOS 应用中的文本阅读体验

ios - 如何在Keychain中找到用SecItemAdd添加的证书

swift - 检查路径是否是 Swift2 中的目录?