Câu trả lời:
Bạn có thể gán phím tắt cho tập lệnh như thế này:
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"
Nhưng nó không hoạt động. Bởi vì bạn phải di chuyển con trỏ chuột qua thông báo, hoặc nút trả lời sẽ không xuất hiện.
click button "Reply" of window 1
có thể hoạt động nếu bạn thay đổi kiểu cảnh báo từ biểu ngữ sang cảnh báo.
Đây là một kịch bản để thực hiện điều này bằng cách sử dụng JavaScript của Yosemite cho Tự động hóa và cầu Objective-C của nó.
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();
Nếu bạn muốn chạy cái này trong shell (ví dụ Alfred chưa hỗ trợ JavaScript), bạn có thể sử dụng lớp lót này để thực thi tập lệnh thông qua 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
Bạn có thể gán tập lệnh này cho một phím tắt bằng bất kỳ công cụ tự động hóa nào. Tôi đang sử dụng Alfred , FastScripts cũng hoạt động.
Bạn sẽ phải cho phép công cụ tự động hóa mà bạn đang sử dụng để điều khiển máy Mac của mình , nếu không chuột sẽ di chuyển, nhưng tập lệnh không thể nhấp vào 'Trả lời'. Trong trường hợp của tôi, tôi đã thêm Alfred ở đó.