我从python中调用了一个苹果脚本对话框,如下所示:
import subprocess
applescript = """
display dialog "Some message goes here..." ¬
with title "This is a pop-up window" ¬
with icon caution ¬
buttons {"OK"}
"""
subprocess.call("osascript -e '{}'".format(applescript), shell=True)
但是,根据我的应用程序的某些条件,通知可能会进入100s,即太多的对话框可能排队等候,并通过点击各自的" OK"手动解除每个对话框。按钮不可行。所以我正在寻找的是另一个苹果脚本,我可以直接使用AppleScript编辑器,它可以为我清除这些对话框。奖金将是捕捉他们的文字和时间戳记到文本文件中,但只需清除它们就是我需要的东西。
我是Mac / applecipts的新手,并没有找到有效的解决方案。我尝试过以下方法:
tell application "System Events"
tell process "NotificationCenter"
set numwins to (count windows)
repeat with i from numwins to 1 by -1
click button "OK" of window i
end repeat
end tell
end tell
和
tell application "System Events"
click button 1 of windows of application process "TextEdit"
end tell
有人可以指导我如何实现这一目标吗?谢谢!
可替换地,
如果有办法分开"分开"每次迭代的通知:
b = """
display notification "All graphics have been converted 2." with title "My Graphic Processing Script" subtitle "Processing is complete." sound name "Frog"
"""
subprocess.call("osascript -e '{}'".format(a), shell=True)
那么,那也行得通。目前正在发生的事情是通知的每次迭代都堆叠在彼此之上 - 即,当生成多个通知时,我只看到最新的通知或此类通知的数量。我反而希望看到所有通知 - 可能将它们垂直堆叠 - 例如:第一个通知显示在右上方,当第一个通知出现在第一个通知消失之前,第一个通知可以向下推,第二个通知可以是显示在那之上。类似地,第三个可以向下推动第一个和第二个,然后在它们之上,依此类推。
这可以实现吗?
基本上,我需要查看所有此类通知的内容 - 被动或主动要求点击。但在这两种情况下,驳回通知都不应妨碍我的工作。这是一个监控应用程序,所以基于某些条件,它会以我的方式抛出通知 - 越接近实时,越好 - 这就是为什么我需要查看所有通知,因为它们出现,而不是写入某些csv或txt文件和我定期检查该文件 - 这将是一个不可持续的工作流程。
答案 0 :(得分:1)
我不完全明白你想要完成的事情。如果您不喜欢对话框,为什么要在脚本中添加对话框。 无论如何,这里有几个想法:
添加
放弃1
到你的显示对话框命令,它将在1秒后自动关闭每个方框。