通过UI脚本从AppleScript中选择多个UI元素

时间:2016-04-27 07:51:27

标签: macos applescript

我正在开发一个Applecript来促进FCPX 10.2.3中的一些工作流程 我正在使用UI脚本执行此任务。 我想在某个文件列表(事件浏览器)中选择两个或多个资源。我可以解决浏览器中的行并选择它们,但我一次只能实现一个选择。

select *soundfile*

set selected of *soundfile* to true

set value of attribute "AXSelected" of soundfile to true

其中 soundfile 例如

row 5 of outline 1 of scroll area 1 of splitter group 1 of splitter group 1 of group 5 of splitter group 1 of window "Final Cut Pro"

工作正常。只有它取消选择所有其他行。

我正在尝试找到一种向应用程序发送命令选择的方法。

另一个想法: 有问题的元素的父元素有一个属性“AXSelectedRows”,但我无法使用它。 如果它不为空,它将返回一个数组,其项目值为'application'系统事件“' 所以我认为它并没有真正落实。

有没有办法实现多重选择?

不一定是苹果脚本......

1 个答案:

答案 0 :(得分:1)

Applescript中有一个错误。您可以将UI元素的selected属性设置为false而不更改其他所选元素,但如果将其设置为true,则取消选择所有其他UI元素。

我还尝试使用"按键{命令}"和"点击",但没办法。我找到的唯一解决方法是选择所有行并取消选择不需要的行。

下面的脚本是Mail中多行选择的示例。它首先使用"命令a"选择所有行(框中的所有消息)。快捷方式,它取消选择Rows_to_Select列表中不存在的所有行。

tell application "Mail" to activate -- just to make it front window
set Rows_to_Select to {1, 3, 5} -- the rows you want to select
tell application "System Events"
tell process "Mail"
    tell table 1 of scroll area 1 of group 1 of splitter group 1 of splitter group 1 of front window
        keystroke "a" using command down -- select all rows
        repeat with I from 1 to count of rows
            if I is not in Rows_to_Select then set selected of row I to false
        end repeat
    end tell
end tell
end tell