Ответы:
Вы можете назначить сочетание клавиш для сценария, как это:
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
может сработать, если вы изменили стиль оповещения с баннеров на оповещения.
Вот скрипт для этого, использующий JavaScript для автоматизации Yosemite и его мост 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();
Если вы хотите запустить это в оболочке (например, Альфред еще не поддерживает 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
Вы можете назначить этот скрипт на ярлык, используя любой инструмент автоматизации. Я использую Альфред , FastScripts работает также.
Вы должны разрешить инструменту автоматизации, который вы используете, управлять своим Mac , в противном случае мышь будет двигаться, но скрипт не сможет нажать «Ответить». В моем случае я добавил туда Альфреда.