Come posso modificare del testo in un documento OmniGraffle tramite AppleScript senza modificare lo stile del testo?

1

Se creo un documento OmniGraffle, aggiungo una casella di testo con "Test" in rosso nella dimensione 28, posso cambiare il testo con questo snippet di AppleScript:

tell application "OmniGraffle Professional 4"
    set text of first solid of first canvas of first document to "Hello"
end tell

Ma questo cambierà anche il colore, la dimensione del carattere e altri attributi di stile su alcuni valori predefiniti. Ho un vecchio script AppleScript che ha fatto qualcosa di simile a quello qui sotto per cambiare il testo senza modificare gli attributi di stile impostando la proprietà "text" del "testo" del "solido". Il dizionario AppleScript di OmniGraffle Pro dice che la proprietà "testo" di un "testo" è "Il contenuto testuale effettivo".

tell application "OmniGraffle Professional 4"
    set text of text of first solid of first canvas of first document to "Hello"
end tell

Sono sicuro che questo funzionasse, ma ho passato alcuni aggiornamenti di OS X e gli aggiornamenti di OmniGraffle dall'ultima esecuzione di quello script, e quando provo ora, ottengo un errore. (Sto ancora utilizzando OmniGraffle Pro 4, non il nuovo OmniGraffle Pro 5)

C'è un altro modo per cambiare solo il testo senza modificare gli attributi di stile o una soluzione alternativa per l'errore di cui sopra (che sospetto essere un bug)? Funziona in OmniGraffle Pro 5?

    
posta Rinzwind 01.08.2012 - 10:02
fonte

1 risposta

2

Per non modificare il colore, la dimensione del carattere e altri attributi di stile: devi utilizzare le classi in Text Suite o in Extended Text Suite .

In questo modo:

tell application "OmniGraffle Professional 4"
   set someGraph to solid 1 of canvas 1 of document 1

  --set word 1 of text of someGraph to "Hello"
  --set characters 1 thru 4 of text of someGraph to "Hello"
  --set attribute run 1 of text of someGraph to "Hello"
  set paragraph 1 of text of someGraph to "Hello World"
end tell
    
risposta data 02.08.2012 - 06:18
fonte

Leggi altre domande sui tag