Ứng dụng AppleScript không thể hiển thị thông báo dưới dạng cảnh báo (và câu hỏi giải quyết)


2

Theo tài liệu của AppleScript , tôi có thể tạo thông báo bằng các nút bằng cách đặt thông báo đó để sử dụng cảnh báo thay vì biểu ngữ trong tùy chọn Trung tâm thông báo. Nhưng khi tôi lưu AppleScript dưới dạng một ứng dụng, sau đó khởi chạy nó một lần (giả sử nó phải khởi chạy để báo cho macOS nó tồn tại), nó không bao giờ xuất hiện trong khung tùy chọn.

Vì vậy, như kế hoạch B, tôi đã thử kịch bản ứng dụng để thay vì một nút, nó sẽ thực hiện mọi thứ khi kích hoạt. Hoạt động tốt. Theo trang này , Mavericks sẽ kích hoạt một ứng dụng khi bạn nhấp vào biểu ngữ của nó, nhưng điều đó dường như không còn hoạt động nữa ở High Sierra; bất kỳ di chuột hoặc nhấp chuột chỉ làm cho biểu ngữ liên tục.

Gói C: tab lệnh cho ứng dụng để kích hoạt nó và chạy chương trình con. Đây là chương trình con để chờ đợi điều đó:

on waitForActivate()
    set notFrontmost to true

    repeat while notFrontmost
        tell application "System Events"
            set frontApp to name of item 1 of (get processes whose frontmost is true)
            if frontApp is "test notifications 2" then set notFrontmost to false
        end tell
        delay 1
    end repeat
end waitForActivate

... Cái nào hiệu quả, nhưng có cách nào tốt hơn để đánh thức nó hơn là bỏ phiếu Sự kiện Hệ thống mỗi giây một lần? Có vẻ cẩu thả. Tôi đã nghĩ về việc lưu nó dưới dạng mở và sử dụng một trình xử lý nhàn rỗi, nhưng tôi không rõ làm thế nào để làm cho nó tốt hơn trong việc cảm nhận trạng thái nhanh nhất của nó một cách nhanh chóng.


1
Nó xuất hiện cho tôi trong khung ưu tiên. Nhưng tôi đã phải khởi động lại tùy chọn hệ thống, bạn có thể xác nhận rằng sau khi khởi động lại tùy chọn hệ thống, nó vẫn không xuất hiện?
JBis

Thật vậy, khởi động lại Tùy chọn hệ thống thực hiện thủ thuật
Andrey Gordeev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.