Come attivare l'auto-visualizzazione della finestra modale quando il programma richiede la tua attenzione

1

Posso fare in modo che le finestre modali vengano visualizzate in primo piano? Voglio vedere gli avvisi e le modali dalle applicazioni in background.

Sono nuovo nel mondo Mac. Ho una piccola utility per il Mac che mostra una finestra modale dopo un po 'di tempo. Fondamentalmente, stampa alcune informazioni molto utili per me.

Mi aspetto che questa finestra modale appaia mentre sto lavorando su cose diverse (navigare su internet, leggere le e-mail), ma invece di vedere la finestra modale l'applicazione rimbalza fastidiosamente nell'icona nel Dock; obvioulsy che significa che il mio software ha bisogno della mia attenzione.

La stessa cosa accade con iTunes, communicator, Safari, ecc.

    
posta joe.kovalski 08.11.2015 - 15:56
fonte

1 risposta

2

Le finestre di dialogo modali non sono qualcosa che puoi garantire mostreranno. Il sistema operativo consente agli utenti di utilizzare più display, più desktop virtuali, app pin su tutti i display, nessun display o display specifico.

Centro notifiche è lo strumento corretto per inviare un avviso a un utente, quindi ridisegno il tuo script / strumento / app per utilizzare il centro notifiche.

Inoltre, senza vedere un mozzicone di ciò che hai già, è davvero difficile suggerirti come implementare una modifica. Proprio come su Stack Overflow: se hai un problema con uno strumento o uno script qui, mostra il tuo lavoro e fai una domanda sul seguito per spiegare esattamente cosa desideri e cosa hai finora.

Ecco un piccolo script python che puoi provare: un piccolo "script" in pitone che ho adattato da una breve ricerca di 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")

Funziona su El Capitan senza bisogno di file aggiuntivi o download afaik. Ancora una volta, ci sono dozzine di opzioni e lingue, quindi è più su ciò che vuoi fare a lungo termine e se sei a tuo agio con la modifica degli script.

    
risposta data 09.11.2015 - 20:48
fonte

Leggi altre domande sui tag