Answers:
您可以为以下脚本分配键盘快捷键:
tell application "System Events" to click window 1 of process "Notification Center"
tell application "System Events" to click button "Reply" of window 1 of process "Notification Center"
但是它不起作用。因为您必须将鼠标指针移到通知上方,否则不会显示“ 回复”按钮。
click button "Reply" of window 1
如果您将警报样式从横幅更改为警报,则可能会起作用。
这是使用Yosemite的JavaScript for Automation及其Objective-C桥来执行此操作的脚本。
ObjC.import("CoreGraphics");
// Notification only detects hover when moving from outside its borders
// over it, so first go to (0, 0).
$.CGWarpMouseCursorPosition({x:0 , y:0});
mainDisplayWidth = $.CGDisplayPixelsWide($.CGMainDisplayID());
$.CGWarpMouseCursorPosition({x:mainDisplayWidth - 50, y:81});
Application("System Events")
.processes["Notification Center"]
.windows()[0]
.buttons["Reply"]
.click();
如果要在外壳中运行此脚本(例如Alfred还不支持JavaScript),则可以使用此单行代码通过osascript
以下方式执行脚本:
echo 'ObjC.import("CoreGraphics"); $.CGWarpMouseCursorPosition({x:0 , y:0}); mainDisplayWidth = $.CGDisplayPixelsWide($.CGMainDisplayID()); $.CGWarpMouseCursorPosition({x:mainDisplayWidth - 50, y:81}); Application("System Events") .processes["Notification Center"] .windows()[0] .buttons["Reply"] .click(); ' | osascript -l JavaScript
您可以使用任何自动化工具将此脚本分配给快捷方式。我正在使用Alfred,FastScripts也可以正常工作。
您必须允许使用用于控制Mac的自动化工具,否则鼠标会移动,但是脚本无法单击“答复”。就我而言,我在那儿添加了阿尔弗雷德。