Les boîtes de dialogue modales ne sont pas quelque chose dont vous pouvez garantir l'affichage. Le système d'exploitation permet aux utilisateurs d'utiliser plusieurs écrans, plusieurs bureaux virtuels, d'affecter des applications à tous les écrans, à aucun écran ou à un écran spécifique.
Centre de notification est l'outil correct pour envoyer une notification à un utilisateur, donc je reconcevrais votre script/outil/application pour faire usage du centre de notification.
De plus, sans voir un bout de ce que vous avez déjà, il est vraiment difficile de vous suggérer comment mettre en œuvre un changement. Comme sur Stack Overflow - si vous avez un problème avec un outil ou un script ici, montrez votre travail et posez une question de suivi pour expliquer exactement ce que vous souhaitez faire et ce que vous avez déjà fait.
Voici un petit script Python que vous pouvez essayer : un petit "script Python que j'ai adapté à partir d'une brève recherche 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")
Il fonctionne sur El Capitan sans nécessiter de fichiers ou de téléchargements supplémentaires. Encore une fois, il y a des dizaines d'options et de langues, donc c'est plus une question de ce que vous voulez faire à long terme et si vous êtes à l'aise avec la modification des scripts.
0 votes
Comme il s'agit d'une question relative au développement de logiciels, vous devriez la poser sur le site suivant StackExchange . Ce site est destiné aux clients d'Apple plutôt qu'aux développeurs. En attendant des réponses plus détaillées sur StackExchange, vous pouvez consulter les pages suivantes NSUserNotification .
0 votes
@GrahamMiln Je n'ai pas accès au code source d'iTunes ou de Safari pour contrôler son comportement. Il s'agit d'un problème plus général concernant la présentation des vues modales sous osx.
0 votes
Pourriez-vous reformuler votre question ? Vous interrogez-vous sur le comportement de Safari et d'autres applications - ou votre question concerne-t-elle votre propre application ? Pour votre propre application, utilisez NSUserNotification.
0 votes
@GrahamMiln C'est général. Je veux juste que toutes les applications me préviennent immédiatement lorsqu'elles ont besoin de mon attention (pas par le biais d'une icône qui rebondit). La question est pas liés au développement de logiciels.
0 votes
J'ai reformulé votre question et l'ai proposée à la réouverture.
0 votes
@GrahamMiln C'est un choix difficile - et ma réponse montre qu'il est plus objectif C que Python pour une "solution" - mais nous ne fermons ou ne déplaçons généralement pas quelque chose à moins qu'il ne s'agisse clairement d'un problème que vous ne pouvez résoudre qu'avec du code. Dans ce cas, Automator pourrait envelopper la demande de dialogue modal assez bien. Bonne rédaction aussi !