как определить событие выхода из приложения - PullRequest
0 голосов
/ 26 сентября 2019

Я создал приложение с помощью редактора скриптов, используя applecript.В коде я использовал «repeat ... end repeat», чтобы высмеивать таймер.Когда код был скомпилирован, я запустил приложение.все работало нормально, но, если я щелкну правой кнопкой мыши значок приложения и выберу меню «Выйти», ничего не произойдет.Я знаю, что должен сделать проверку «ВЫХОДА», но я не знаю, как это сделать.Кто-нибудь может помочь?

on main()

    set f1 to "/System/Library/Sounds/Pop.aiff"
    set f2 to "/System/Library/Sounds/Ping.aiff"
    set f3 to "/System/Library/Sounds/Glass.aiff"
    set f4 to "/System/Library/Sounds/Tink.aiff"

    repeat
        set now to current date
        set h to hours of now
        set m to minutes of now
        set s to seconds of now

        if (h = 6) and (m = 30) and (s = 0) then 
                --some code here
        end if

        delay 0.5

    end repeat

end main

1 Ответ

0 голосов
/ 26 сентября 2019

Повторяющийся цикл блокирует код.

Поскольку код сохраняется как приложение, используйте обработчик простоя, который вызывается периодически в зависимости от возвращаемого значения.

global f1, f2, f3, f4

on run
    set f1 to "/System/Library/Sounds/Pop.aiff"
    set f2 to "/System/Library/Sounds/Ping.aiff"
    set f3 to "/System/Library/Sounds/Glass.aiff"
    set f4 to "/System/Library/Sounds/Tink.aiff"
end run

on idle   
    set {hours:h, minutes:m, seconds:s} to current date
    if (h = 6) and (m = 30) and (s = 0) then 
            --some code here
    end if
    return 1
end idle
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...