Answers:
tell application "System Events"
tell process "NotificationCenter"
set numwins to (count windows)
repeat with i from numwins to 1 by -1
click button "Close" of window i
end repeat
end tell
end tell
将以上代码复制并粘贴到AppleScript编辑器中在Accessibility中启用脚本编辑器
此处详细介绍了另一种使用Keyboard Maestro来运行Applescript的选项:http ://genuinecuriosity.com/unnotify
我已将其映射,以便单击Command Option 0以清除所有打开的警报对话框。
基本上,我创建了一个Applescript,以单击所有打开的警报(通常是“关闭”)上的第一个按钮,然后执行该操作,直到清除所有警报。您可以直接通过Keyboard Maestro使用Applescript(如我的文章所述),也可以使用Automator创建服务(由于可访问性权限要求,这有点麻烦)。
我最终创建了一个Automator脚本来执行此操作并将其映射到全局热键。
on run {input, parameters}
tell application "System Events"
tell process "Notification Center"
set theWindows to every window
repeat with i from 0 to number of items in theWindows
try
set this_item to item ((number of items in theWindows) - i) of theWindows
click button 1 of this_item
on error
-- nothing
end try
end repeat
end tell
end tell
end run
我知道这最初是针对优胜美地的,我不确定那里的答案,但是鉴于这个问题已有3年历史了,而且我只是在寻找与Mojave相同的东西时才发现的,我想我提到了答案找到了。
在菜单栏的最右边,单击3行,这将弹出一个带有Today / Notifications选项卡的窗口。如果选择“通知”选项卡,则可以单击“今日”右侧的X清除给定日期的所有通知。单击几下,您将清除所有旧单击。
这个SIMBL应用程序很好地完成了这个任务。chuckhendo / NotificationClear:SIMBL捆绑包将一个“ Clear All”按钮添加到Notification(https://github.com/chuckhendo/NotificationClear)
只需使用mySIMBL安装它。w0lfschild / mySIMBL:适用于macOS的SIMBL插件管理器(https://github.com/w0lfschild/mySIMBL)
安装后,您只需打开通知中心,然后单击底部的“清除”即可。