我正在尝试使用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.";
如何将字符串“解析”为预期的常量?
答案 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
记录。您可以直接设置单个属性