1 votos

Cómo activar la ventana modal que aparece automáticamente cuando el programa necesita su atención

¿Puedo hacer que las ventanas modales aparezcan en primer plano? Quiero ver alertas y modales de aplicaciones en segundo plano.

Soy nuevo en el mundo Mac. Tengo una pequeña utilidad para el Mac que muestra una ventana modal después de algún tiempo. Básicamente, imprime una información muy útil para mí.

Espero que esta ventana modal aparezca mientras estoy trabajando en otras cosas (navegando por Internet, leyendo correos electrónicos), pero en lugar de ver la ventana modal la aplicación rebota molestamente su icono en el Dock; obvioulsy lo que significa que mi software necesita mi atención.

Lo mismo ocurre con iTunes, comunicadores, Safari, etc.

0 votos

Dado que se trata de una pregunta sobre desarrollo de software, debería formularla en StackExchange . Este sitio es para clientes de Apple y no para desarrolladores. A la espera de respuestas más detalladas sobre StackExchange, que mirar a NSUserNotification .

0 votos

@GrahamMiln No tengo acceso al código fuente de iTunes o Safari para controlar su comportamiento. Este es un problema más general sobre la presentación de vistas modales en osx.

0 votos

¿Podría reformular su pregunta? ¿Está preguntando por el comportamiento de Safari y otras aplicaciones o se refiere a su propia aplicación? Para su propia aplicación, utilice NSUserNotification.

2voto

Oskar Puntos 1242

Los diálogos modales no son algo que se pueda garantizar que se mostrarán. El sistema operativo permite a los usuarios utilizar múltiples pantallas, múltiples escritorios virtuales, fijar aplicaciones a todas las pantallas, a ninguna pantalla o a una pantalla específica.

Centro de notificaciones es la herramienta correcta para enviar una notificación a un usuario así que yo rediseñaría tu script/tool/app para hacer uso del centro de notificaciones.

Además, sin ver algo de lo que ya tienes, es muy difícil sugerirte cómo implementar un cambio. Al igual que en Stack Overflow - si usted tiene un problema con una herramienta o un script aquí, por favor muestre su trabajo y haga una pregunta de seguimiento para explicar exactamente lo que desea que suceda y lo que tiene hasta ahora.

Aquí tienes un pequeño script de Python que puedes probar: un pequeño "script" de Python que he adaptado a partir de una breve búsqueda de SO :

import Foundation
import objc
import AppKit
import sys

note = objc.lookUpClass('NSUserNotification')
center = objc.lookUpClass('NSUserNotificationCenter')

def notify(title, subtitle, info_text, delay=0, sound=False, userInfo={}):
    notification = note.alloc().init()
    notification.setTitle_(title)
    notification.setSubtitle_(subtitle)
    notification.setInformativeText_(info_text)
    notification.setUserInfo_(userInfo)
    if sound:
        notification.setSoundName_("NSUserNotificationDefaultSoundName")
    notification.setDeliveryDate_(Foundation.NSDate.dateWithTimeInterval_sinceDate_(delay, Foundation.NSDate.date()))
    center.defaultUserNotificationCenter().scheduleNotification_(notification)

notify("AskDifferent", "you can program now", "Here we go... ", sound=True)
sys.stdout.write("Notification sent...\n")

Funciona en El Capitan sin necesidad de archivos adicionales o descargas afaik. De nuevo, hay docenas de opciones e idiomas, así que depende más de lo que quieras hacer a largo plazo y de si te sientes cómodo modificando scripts.

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