Actualmente uso este AppleScript para intentar poner el foco en la ventana más reciente de un PID, en ejemplo aquí mi pid es 450
.
tell application "System Events"
set frontmost of the first process whose unix id is 450 to true
end tell
Esto funciona de maravilla porque no pide la aprobación de la accesibilidad. Sin embargo, las peculiaridades son:
- Ignora las ventanas minimizadas, por lo que si todas las ventanas están minimizadas, no se enfoca nada
- Si tiene ventanas en varios espacios, y la última ventana a la que accedió estaba en el espacio X. Si está en el espacio Y y tiene ventanas de esa aplicación en el espacio Y, se enfocará la más reciente utilizada en el espacio Y.
- Todavía no me he encontrado con ello, pero por lo visto la gente dice que si una ventana de otras aplicaciones está encima de la ventana, ésta no se pone encima.
Sé de perform action AXRaise
Sin embargo, esto necesita la aprobación de la API de accesibilidad. Los usuarios de mi complemento están pidiendo que se elimine esto, ya que muchos de ellos tienen dificultades para permitir el acceso a la aplicación única, especialmente si no lo conceden en la primera ventana emergente.
Así que esto se hizo en applescript, si usted sabe cómo hacerlo en carbono (núcleo-fundación, núcleo-gráficos) o cacao puedo usar eso para.
En osx 10.9 el AXMakeProcessTrusted
estaba obsoleto, de lo contrario podría haber usado eso para conceder el acceso a mi aplicación sin molestar a los usuarios y luego usar AXUIElementSetAttributeValue
para llevar una ventana al frente.
Por favor, ayuda Gracias