NSPathControl问题

时间:2012-05-22 13:49:42

标签: objective-c cocoa nspathcontrol

我有一个我在可可开发的应用程序,我遇到NSPathControl的问题。

我将控件的样式设置为Popup,当我启动应用程序并单击路径控件时,它会显示一个弹出菜单,其中包含我设置的URL的组件。即,对于file://localhost/Applications/Games/这样的网址,它会向我显示以下内容:My MacbookMacintosh HDApplicationsGames

现在,当我点击Applications时,我会收到一个操作,然后在该操作中[[sender clickedPathComponentCell] URL]返回正确的网址:file://localhost/Applications/

问题1:  但是当我点击Macintosh HD时,我会得到一个带有双尾斜杠的网址:file://localhost//

问题2:当我点击file://localhost//项时,我得到相同的网址My Macbook。所以,我有两个问题:

  1. 为什么Macintosh HD的网址以双斜线结尾?

  2. 如何区分Macintosh HDMy Macbook上的点击次数,以及My Macbook的正确网址,其中Finder显示已装入的卷列表(在我的macbook上)是Macintosh HDBOOTCAMP)?

  3. 我已经检查了名为“SourceView”的教程,但是没有像My Macbook这样的项目,所以我无法找到,My Macbook是否真的存在于某种虚拟状态文件夹,或者我应该使用NSFileManager来获取已安装卷的列表。

1 个答案:

答案 0 :(得分:1)

问题#1:

网址为file://localhost//,因为启动卷的路径为/。这有点奇怪,但是file://localhost/(单斜杠)意味着“没有路径的localhost上的文件”,所以你得到file://localhost//(双斜杠)来表示“路径{{上的localhost上的文件” 1}}。

你不应该真的担心你所获得的URL的怪癖 - 只需将它传递给任何需要的东西,它应该处理它就好了。

问题#2:

“我的MacBook”并不存在 - 它是一个虚拟文件夹,显示已连接卷的列表/等。由于它不存在,因此没有有效的路径,因此相反,你会得到启动卷的路径。