Cambiar los textos de marcador de posición en las páginas usando AppleScript

Tengo una "prueba" de documento de Pages con un cuadro de texto que tiene el texto "Notas al pie". Este texto está marcado como texto de marcador de posición.

Quiero cambiar este texto usando AppleScript. Esto es lo que tengo hasta ahora:

tell application "Pages"
    activate
    tell document "test"
        tell current page
            set thistext to every text item whose object text contains "Footnotes"
            tell thistext
                tell its object text
                    set every word to mytext
                end tell
            end tell
        end tell
    end tell
end tell

Ejecutar esto resultará en el siguiente error:

error "No se puede obtener el texto del objeto de {elemento de texto 1 de la página 1 del ID del documento \"EB865803-005B-4C5D-A740-398B41B767F5\" de la aplicación \"Páginas\"}". número -1728 de «clase pDTx» de {«clase shtx» 1 de «clase cPag» 1 de id de documento "EB865803-005B-4C5D-A740-398B41B767F5"}

El editor de secuencias de comandos también marca las siguientes líneas:

tell its object text
     set every word to mytext
end tell

¿Algunas ideas? El objetivo es llenar el texto del marcador de posición en esa página con una nota al pie personalizada.

Respuestas (1)

set … to every …establece la variable en una lista. Eso significa thistextque es una lista, por lo que no puede realizar operaciones destinadas a los elementos en la lista en sí. Necesitas un bucle:

repeat with thistext in (every text item whose object text contains "Footnotes")
end repeat

El guion completo es:

tell application "Pages"
    activate
    tell document "test"
        tell current page
            repeat with thistext in (every text item whose object text contains "Footnotes")
                tell thistext
                    tell its object text
                        set every word to mytext
                    end tell
                end tell
            end repeat
        end tell
    end tell
end tell
set thistext to the first text item whose object text contains "Footnotes"también trabajó
@Walter Sí, eso funciona si solo tiene un elemento de texto, supuse que tenía muchos porque usó 'todos' :)