iTunes 12: Come scorrere le opzioni di visualizzazione con script / collegamento?


0

Sto cercando di scrivere uno script di mele che scorre tra canzoni, album, artisti, compositori, generi e ritorno a canzoni.

Problema

Non c'è nulla nel dizionario applescript riguardo a questo, quindi devo ricorrere a UIscripting / Accessibility. Questo è quello che ho finora:

tell application "System Events" to tell process "iTunes"

    set frontmost to true -- necessary
    delay 1 -- for last line to take effect, delete if you bind this to keyboard shortcut

    tell window 1 -- tell window "iTunes" only works when in fullscreen

        tell pop up button 2 to perform action "AXPress" -- equivalent of
        --keystroke "j" using {command down}

        tell UI element 1 of row 5 of table 1 of pop over 1 of pop up button 2 to perform action "AXPress"
        -- pressing Genres button, assuming Vies is not in Genres already, of course

    end tell
end tell

Puoi eseguirlo con Script Editor, o preferibilmente ai fini del resto di questa domanda, associarlo a una scorciatoia da tastiera e invocarlo mentre sei in iTunes. Quando lo esegui, vedi il menu a comparsa lampeggiare sullo schermo, giusto?

Ora, ecco la parte interessante: usa il cursore per fare clic sul pulsante pop-up, scorri verso il basso e posiziona il cursore su Artisti .

Cursore

Il cursore stesso viene omesso dalla funzione Schermata OS X, ma puoi vedere che Artisti è attivo. Ora premi Esc per nascondere il menu e invoca lo script mentre il cursore è ancora in questa posizione.

Bam! Ora sei passato alla vista Artisti . Si scopre che il secondo perform action "AXPress"viene eseguito sotto il cursore perché il menu a comparsa non è attivo dopo aver fatto clic sul pulsante di opzione vie.

Esiste un modo più semplice per verificare questo problema / errore. 1) Fare clic sull'opzione di visualizzazione. 2) Premere il tasto Giù un paio di volte. Ti aspetteresti che il focus si sposterà su Songs e poi su Album , giusto? No, stai semplicemente spostando gli elementi della libreria in background, mentre il menu è ancora visualizzato in primo piano.

Quindi, la mia domanda si riduce a, come posso spostare lo stato attivo del cursore su questo menu a comparsa?

AGGIORNAMENTO: Grazie @ jackjr300 per la risposta. Ecco come appare il mio script finito:

tell application "System Events"
    tell process "iTunes"
        set frontmost to true
        delay 1
        tell pop up button 2 of window 1
            click

            if value of attribute "AXDescription" is "Genres" then
                tell (select row 1 of table 1 of pop over 1) to click UI element 1
            end if
            if value of attribute "AXDescription" is "Songs" then
                tell (select row 2 of table 1 of pop over 1) to click UI element 1
            end if
            if value of attribute "AXDescription" is "Albums" then
                tell (select row 3 of table 1 of pop over 1) to click UI element 1
            end if
            if value of attribute "AXDescription" is "Artists" then
                tell (select row 4 of table 1 of pop over 1) to click UI element 1
            end if
            if value of attribute "AXDescription" is "Composers" then
                tell (select row 5 of table 1 of pop over 1) to click UI element 1
            end if

        end tell
    end tell
end tell

Risposte:


1

Utilizzare il selectcomando per selezionare la riga.

tell application "System Events"
    tell process "iTunes"
        set frontmost to true 
        delay 1
        tell pop up button 2 of window 1
            click
            tell (select row 5 of table 1 of pop over 1) to click UI element 1
        end tell
    end tell
end tell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.