Problemas de NSPathControl

tengo una aplicacion que estoy desarrollando en cocoa, y tengo un problema con NSPathControl.

Establecí el estilo del control en Popup, y cuando ejecuto mi aplicación y hago clic en el control de ruta, me muestra un menú emergente con los componentes de la URL que configuré. Es decir, para URL como file://localhost/Applications/Games/ me muestra lo siguiente: My Macbook, Macintosh HD, Applications, Games.

Ahora, cuando hago clic en Applications, recibo una acción, y dentro de esa acción [[sender clickedPathComponentCell] URL] devuelve la URL correcta: file://localhost/Applications/.

Problema 1: Pero cuando hago clic en Macintosh HD, obtengo una URL con doble barra inclinada: file://localhost//.

Problema 2: es que me sale la misma URL file://localhost// cuando hago clic en My Macbook ít. Entonces, tengo 2 preguntas:

  1. ¿Por qué la URL a Macintosh HD termina con doble barra?

  2. ¿Cómo puedo distinguir los clics en Macintosh HD y My Macbooky cuál es la URL correcta para My Macbook, donde Finder muestra la lista de volúmenes montados (en mi macbook es Macintosh HD y BOOTCAMP)?

Examiné el tutorial llamado "SourceView", pero no había ningún elemento como My Macbook, por lo que no pude averiguar si My Macbook realmente existe como una especie de carpeta virtual, o simplemente debería usar NSFileManager para obtener la lista de volúmenes montados.

preguntado el 22 de mayo de 12 a las 14:05

1 Respuestas

Problema #1:

La URL es file://localhost// porque la ruta a su volumen de arranque es /. Es un poco raro, pero file://localhost/ (barra inclinada) significaría "un archivo en localhost sin ruta", por lo que obtiene file://localhost// (doble barra) para indicar "un archivo en localhost en la ruta /.

Realmente no debería tener que preocuparse por las excentricidades de la URL que está obteniendo, solo pásela a lo que sea que la necesite y debería manejarla bien.

Problema #2:

"Mi MacBook" en realidad no existe, es una carpeta virtual que muestra la lista de volúmenes conectados, /Network, etc. No hay una ruta válida para él ya que no existe, por lo que en su lugar obtiene la ruta a su volumen de arranque.

contestado el 22 de mayo de 12 a las 18:05

>La URL es file://localhost// porque la ruta a su volumen de arranque es /. Sí, pensé en eso, pero lo que no entiendo es por qué entonces la URL a, digamos, la carpeta Aplicaciones no tiene una barra inclinada doble después de localhost y normalmente se ve como file://localhost/Applications/, no file:// localhost//Aplicaciones/ - Únicos

Y sobre el n. ° 2, todavía estoy interesado en cómo distinguir los clics en "Macintosh HD" y "Mi Macbook" dentro de NSPathControl. Y muchas gracias por contestar) - Únicos

Cabe señalar que si la ruta configurada en NSPathControl comienza con una barra inclinada doble "//", mostrará "Macintosh HD > Usuarios > Nombre de usuario > Directorio de ejemplo". Si la ruta comienza con una sola barra inclinada "/", mostrará "Nombre de usuario > Directorio de ejemplo". Esta pregunta y respuesta me ayudaron a darme cuenta de eso, no lo vi documentado en ningún otro lugar. - Andrés

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.