2016-04-27 11 views
0

FCPX内のワークフローを容易にするために、AppleScriptを使用しています。10.2.3 私はこのタスクにUIスクリプトを使用しています。 特定のファイルリスト(イベントブラウザ)で2つ以上のアセットを選択したいとします。私はブラウザ内の行をアドレス指定して選択することができますが、一度に1つの選択しかできません。 サウンドファイルが正常に動作しますUIスクリプトを使用して、applescriptから複数のUI要素を選択する

例えば

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" 
ある

select *soundfile* 

set selected of *soundfile* to true 

set value of attribute "AXSelected" of soundfile to true 

。他の行はすべて選択解除されます。

私はアプリにコマンド選択を送信する方法を見つけようとしています。

別のアイデア: 問題の要素の親要素には属性「AXSelectedRows」がありますが、それには何もできません。 空でない場合は、項目値が 'application'の配列が返されます。System Events "' 本当に実装されていないと思います。

複数選択を行う方法はありますか? AppleScriptではバグがあり

答えて

1

Doesn'tは...アップルスクリプトでなければなりません。選択した他の要素を変更せずに、UI要素の選択したプロパティを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 
+0

ありがとうございます! 私の場合、要素の選択を解除するには1/3〜1/2が必要です。そして、全体のリストは80から400までの間になります;) 実際に私はよりよい解決策を見つけるまで似たようなことをしました:行番号の最大の差を計算し、最も低い行番号の行を選択してshift-arrow_downすべてのアイテムが選択に含まれるまで問題のウィンドウに移動します。あなたがそれを言及したようにその後、選択解除ループを行います。 –

関連する問題