Come posso cambiare del testo in un documento OmniGraffle tramite AppleScript senza cambiare 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 frammento 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 in alcune impostazioni predefinite. Ho un vecchio script AppleScript che ha fatto qualcosa di simile a quello qui sotto per cambiare il testo senza cambiare gli attributi di stile impostando la proprietà "text" del "testo" del "solido". Il dizionario AppleScript di OmniGraffle Pro afferma che la proprietà "testo" di un "testo" è "Il contenuto effettivo del testo".

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 funzionava, ma ho passato alcuni aggiornamenti di OS X e OmniGraffle dall'ultima volta che ho eseguito quello script, e quando lo provo ora, ricevo un errore. (Sto ancora usando OmniGraffle Pro 4, non il nuovo OmniGraffle Pro 5)

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


Hai già posto la domanda su forums.omnigroup.com ?
Nohillside

Ho completamente dimenticato che hanno il loro forum. Grazie per il consiglio.
Rinzwind,

Risposte:


2

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

Come questo :

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
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.