如何从字符串获取/设置applescript属性?

时间:2018-07-09 08:14:14

标签: applescript

我正在尝试使用applescript自动在MacOS中停靠的位置。

我可以成功放置扩展坞。效果很好:

tell application "System Events"
 tell dock preferences
   set properties to {screen edge:right}
  end tell
end tell

问题是我想将该位置作为参数接受,并且以字符串形式提供。所以我最终得到了等同于:

tell application "System Events"
 tell dock preferences
   set x to "right"
   set properties to {screen edge:x}
  end tell
end tell

这会导致错误:

"System Events got an error: Can\U2019t make \"right\" into type constant.";

如何将字符串“解析”为预期的常量?

1 个答案:

答案 0 :(得分:1)

right(不带引号)是一个整数值,是一个枚举常量。您不能将字符串转换为枚举。

如果您确实需要一个字符串参数,一种解决方法是使用if - else

on setDockScreenEdge(theEdge)

    tell application "System Events"
        tell dock preferences
            if theEdge is "right" then
                set screen edge to right
            else if theEdge is "left" then
                set screen edge to left
            else if theEdge is "bottom" then
                set screen edge to bottom
            end if
        end tell
    end tell

end setDockScreenEdge

然后您可以使用字符串参数更改边缘

setDockScreenEdge("right")

没有必要设置properties记录。您可以直接设置单个属性