我有一个我在可可开发的应用程序,我遇到NSPathControl
的问题。
我将控件的样式设置为Popup
,当我启动应用程序并单击路径控件时,它会显示一个弹出菜单,其中包含我设置的URL的组件。即,对于file://localhost/Applications/Games/
这样的网址,它会向我显示以下内容:My Macbook
,Macintosh HD
,Applications
,Games
。
现在,当我点击Applications
时,我会收到一个操作,然后在该操作中[[sender clickedPathComponentCell] URL]
返回正确的网址:file://localhost/Applications/
。
问题1:
但是当我点击Macintosh HD
时,我会得到一个带有双尾斜杠的网址:file://localhost//
。
问题2:当我点击file://localhost//
项时,我得到相同的网址My Macbook
。所以,我有两个问题:
为什么Macintosh HD
的网址以双斜线结尾?
如何区分Macintosh HD
和My Macbook
上的点击次数,以及My Macbook
的正确网址,其中Finder显示已装入的卷列表(在我的macbook上)是Macintosh HD
和BOOTCAMP
)?
我已经检查了名为“SourceView”的教程,但是没有像My Macbook
这样的项目,所以我无法找到,My Macbook
是否真的存在于某种虚拟状态文件夹,或者我应该使用NSFileManager
来获取已安装卷的列表。
答案 0 :(得分:1)
问题#1:
网址为file://localhost//
,因为启动卷的路径为/
。这有点奇怪,但是file://localhost/
(单斜杠)意味着“没有路径的localhost上的文件”,所以你得到file://localhost//
(双斜杠)来表示“路径{{上的localhost上的文件” 1}}。
你不应该真的担心你所获得的URL的怪癖 - 只需将它传递给任何需要的东西,它应该处理它就好了。
问题#2:
“我的MacBook”并不存在 - 它是一个虚拟文件夹,显示已连接卷的列表/
等。由于它不存在,因此没有有效的路径,因此相反,你会得到启动卷的路径。