1 votos

Abrir una aplicación de fondo en primer plano

He desarrollado una aplicación para MacOS con una interfaz gráfica de usuario y la he configurado como A background only application en el Info.plist archivo.

enter image description here

Además, lo he añadido a las aplicaciones de inicio para que siga funcionando mientras el Mac está encendido.

enter image description here

Ahora quiero abrir en primer plano esta aplicación. Lo he intentado en la Terminal con open pero no tiene ningún efecto. ¿Hay alguna forma de abrir una aplicación en segundo plano en el primer plano?

1voto

Jose Chavez Puntos 645

No, no es posible ejecutar una "aplicación de fondo" en primer plano.

No es que una aplicación que haya especificado "LSBackgroundOnly" simplemente tenga su ventana en segundo plano y "oculta a la vista". El programa realmente se ejecuta en un contexto en el que no puede abrir ninguna ventana.

Tendrás que poner "LSBackgroundOnly" en falso o eliminar la propiedad para poder ejecutar la app con una GUI mostrada. Ahora ya no es una "aplicación de fondo" - es una aplicación normal.

0voto

wch1zpink Puntos 11

La única manera, creo, de hacer visible una aplicación cuyo "Info.plist" contiene "La aplicación es sólo de fondo" es Verdadero, es editar el archivo plist y establecer el valor de "La aplicación es sólo de fondo" a Falso o No o 0.

El siguiente código AppleScript le ayudará a hacer exactamente eso Muy rápidamente

activate
set plistFile to POSIX path of (choose file with prompt ¬
    "Select a .plist file to edit from within an app's \"Contents\" folder." of type ¬
    "com.apple.property-list" with invisibles and showing package contents)

set appName to do shell script "defaults read " & quoted form of plistFile & " CFBundleName"

try
    set currentStateOfBackgroundOnly to do shell script "defaults read " & ¬
        quoted form of plistFile & " LSBackgroundOnly"
on error errMsg number errNum
    set currentStateOfBackgroundOnly to "0"
end try

if currentStateOfBackgroundOnly = "0" then
    set appStatus to appName & " Is NOT currently running in \"Background Only\" mode."
else
    set appStatus to appName & " IS currently running in \"Background Only\" mode."
end if

activate
set theChoice to (choose from list {"Run In Background", "Don't Run In Background"} ¬
    with title "Run " & appName & ".app in the background only?" with prompt ¬
    appStatus & linefeed & linefeed & "Would you like to run " & appName & ¬
    ".app in the background only?" OK button name "OK" cancel button name "Cancel") as text

if theChoice = "Run In Background" then
    do shell script "defaults write " & quoted form of plistFile & " LSBackgroundOnly" & " -bool True"
else if theChoice = "Don't Run In Background" then
    do shell script "defaults write " & quoted form of plistFile & " LSBackgroundOnly" & " -bool False"
end if

enter image description here

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