0 votos

Abrir un archivo que hago doble clic con la aplicación creada con script Editor

He creado una Aplicación desde el Editor script con este contenido:

do shell script "PATH=/Library/TeX/texbin:$PATH ¬
    open -n /Applications/Xournal++.app"

y lo llamé /Users/enzotib/Applications/Xournal-mod.app .

Funciona si hago doble clic en la aplicación y luego selecciono un archivo .xopp para abrir.

La pregunta es: ¿cómo debo modificar el script, para poder asociar la extensión del archivo .xopp con la aplicación ¿abre el archivo que hago doble clic con la aplicación?

Editar

He cambiado el título, que era "Asociar el tipo de archivo con la aplicación creada desde script Editor", porque me he dado cuenta de que era engañoso.

0 votos

Debe editar el archivo Info.plist para incluir el CFBundleDocumentTypes que desea asociar a su aplicación.

0 votos

@red_menace: ¿puedes ser más específico, por favor? No entiendo qué hacer

0 votos

En CFBundleDocumentTypes en la tecla Info.plist es una matriz de diccionarios que asocian tipos de documentos a tu aplicación. Puede consultar los diccionarios Info.plist de aplicaciones existentes, como Vista Previa o TextEdit, por ejemplo. La aplicación predeterminada para abrir un archivo concreto también puede configurarse desde el Finder. Infórmate ventana.

1voto

qarma Puntos 71

A partir de la respuesta que has dado:

on open fileName
        do shell script "PATH=/Library/TeX/texbin:$PATH ¬
            open -n -a /Applications/Xournal++.app " & ¬
            quoted form of POSIX path of fileName
end open

una solución más sencilla habría sido:

on open {fileName}
        tell application "Xournal++" to open (fileName as «class furl»)
end open

que funcionará incluso para las aplicaciones que no son scripts y que aceptan eventos de alto nivel de Apple. Para los que no lo hacen, entonces:

on open {fileName}
        tell application id "com.apple.Finder" to open fileName ¬
                using application file "/Applications/Xournal++.app"
end open

Sin embargo, en general, es curioso el esfuerzo que supone pasarle un archivo para que lo abra, sólo para que lo abra en alguna otra aplicación. Esto es un poco como montar un espejo en la pared para mirar tu monitor mientras usas el ordenador, a menos que esto sea en realidad sólo un pequeño extracto de un script más grande.

1 votos

Esta es una gran explicación de cómo lograrlo. Estoy igualmente desconcertado en cuanto a por qué el OP querría que este script existiera a menos que sea de hecho un pequeño extracto de un script más grande.

0 votos

El primer intento fue abrir diferentes instancias de la misma aplicación, por lo que necesité la opción "-n" para "abrir". A continuación me di cuenta de que necesitaba añadir algo al PATH, y no encuentro mejor forma que usando un script de shell con el prefijo "PATH=algo".

0 votos

Su solución no aprovecha estos requisitos, por lo que no me resulta útil.

0voto

Dan McClain Puntos 7036

He resuelto con:

on open fileName
    do shell script "PATH=/Library/TeX/texbin:$PATH open -n -a /Applications/Xournal++.app " & ¬
        quoted form of POSIX path of fileName
end open

0 votos

Tenga en cuenta que esto no asocia ningún tipo de archivo o extensión con la aplicación, el controlador sólo recibe los archivos que caen en la aplicación.

0 votos

@red_menace: Lo sé, cambié el título de la pregunta, porque no me quedaba claro lo que estaba haciendo o preguntando :)

0 votos

En PATH es superflua, y la primera ¬ realmente debería arrojar un error, ya que no es algo que ningún shell que yo conozca reconocería y con lo que estaría contento.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X