Apple脚本全局变量在使用键盘快捷键执行服务时不起作用

时间:2015-06-07 07:41:14

标签: applescript automator

我在Automator中创建了一项服务,每次都使用不同的颜色模式打开终端。

global terminalpos

on run {input, parameters}
    try
        get terminalpos
    on error
        set terminalpos to 0
    end try
    set colorsList to {"Pro", "Basic", "Grass", "Homebrew", "Man Page", "Novel", "Ocean", "Red Sands", "Silver Aerogel", "Solid Colors"}
    set listSize to count of colorsList
    if terminalpos is greater than or equal to listSize then
        set terminalpos to 0
    end if
    tell application "Terminal"
        set terminalpos to terminalpos + 1

        set default settings to settings set terminalpos

        do script ""
        activate
    end tell

end run

内部自动装置工作正常。 但是当我使用键盘快捷键执行服务时,它不起作用。似乎每次都要设置全局变量。 有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

全局变量不是"持久的"跨应用程序的启动。这是一个简单方法的链接,可以从自动机应用程序中保留数据。见here。请注意,在applescript应用程序中,您只需使用"属性"变量,但他们不能使用自动应用程序。

您可以看到链接中的代码无需您执行任何操作即可。为"首次运行"设置一个值。然后自动创建保存的数据文件。我喜欢将保存的数据文件的路径设置到首选项文件夹的想法,这样它就可以解决问题了,您的自动应用程序应用程序将像您计算机上的其他应用程序一样工作。