Нажатие клавиш в Yosemite происходит очень медленно.

Я использую applescript в Mac OS X 10.10 (Yosemite). Я заметил, что действие нажатия клавиши имеет тенденцию быть намного медленнее, чем 10.9.

Ниже приведен мой яблочный скрипт, который говорит терминалу ввести «cd my current path in Finder» и нажать return:

tell application "Finder"
    try
        set currentFolder to (folder of the front window)
        set currentPath to (POSIX path of (target of the front window as alias))
    on error
        set currentFolder to desktop
        set currentPath to (POSIX path of (desktop as alias))
    end try
end tell

tell application "Terminal"
    activate
    delay 0.5
    tell application "System Events"
        set cdtocurrentPath to "cd \"" & currentPath & "\"" as string
        keystroke cdtocurrentPath
        keystroke return
    end tell
end tell

Раньше в OS X 10.9 нажатие клавиши для ввода текущего пути было очень быстрым (менее 1 с для длинной строки). Однако в 10.10 он работает очень медленно (обычно более 3-4 с), так что я могу четко наблюдать за печатаемыми буквами.

Кроме того, другие действия в System Events также медленнее, чем в 10.9, и поэтому мне нужно увеличить время для delay, чтобы заставить их работать правильно.

Кто-нибудь может объяснить это? Или дать альтернативное решение? Спасибо!


person zdwang    schedule 25.10.2014    source источник


Ответы (1)


Я протестировал его в редакторе сценариев 10.10, и он работает менее чем за 1 секунду. Должна быть какая-то другая проблема.

Это может помочь использовать команду do script:

tell application "Terminal" to do script "cd \"" & currentPath & "\""
person user309603    schedule 26.10.2014
comment
Спасибо за ваше замечательное решение! Я изменил его на tell application "Terminal" to do script "cd \"" & currentPath & "\"" in window 1, чтобы выполнить мое требование. - person zdwang; 27.10.2014