Sento che AXSelectedRows mi ha finalmente battuto in sottomissione :) Dopo una lunga ricerca, sono perplesso su come elencare programmaticamente il contenuto di AXSelectedRows; semplicemente messo, per ottenere le righe selezionate di qualsiasi dato AXOutline.
Sembra banale, ma trovare una risposta si è rivelato difficile - in particolare a causa della mancanza di documentazione online (anche se probabilmente dovrei comprare un libro!) Stranamente, molte persone sembrano voler selezionare a livello di codice invece di ottenere righe selezionate.
Sono certamente vicino però. Ho raggiunto finora:
set selectedRows to value of attribute "AXSelectedRows" of outline1
dove outline1
è impostato su un AXOutline. Avanti:
set selectedRow to item 1 of selectedRows
Questo è dove diventa un po 'torbido (dopo aver già fallito impostarlo su row 1
invece di item 1
). Prevedo che selectedRow
sia di tipo AXRow
(o row
), ma invece l'output di Automator mostra:
application "System Events"
Cioè, l'elemento sembra essere un'istanza di "System Events" di sistema "" - il che mi porta a credere che trascuro qualcosa di importante. Detto questo, sento di aver provato ogni combinazione di value
, attribute
e row
- inclusi alcuni tipi di casting.
La parte frustrante è che posso effettivamente vedere i contenuti di AXSelectedRows in Accessibility Inspector! E così so che esiste. Come soluzione temporanea, sto usando:
set selectedRows to selected of rows of outline1
Tuttavia, questo non è certamente preferibile in quanto devo ancora scorrere l'intero array per trovare i valori "veri", che potrebbero avere problemi di prestazioni per elenchi molto grandi.
Qualsiasi aiuto sarebbe molto apprezzato!