¿Cómo cambio un texto en un documento de OmniGraffle a través de AppleScript sin cambiar el estilo del texto?

1

Si creo un documento de OmniGraffle, agrego un cuadro de texto con "Prueba" en rojo en el tamaño 28, puedo cambiar el texto con este fragmento de AppleScript:

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

Pero esto también cambiará el color, el tamaño de la fuente y otros atributos de estilo a algunos valores predeterminados. Tengo un antiguo script AppleScript que hizo algo como el siguiente para cambiar el texto sin cambiar los atributos de estilo estableciendo la propiedad "texto" del "texto" del "sólido". El diccionario AppleScript de OmniGraffle Pro dice que la propiedad de "texto" de un "texto" es el "contenido del texto real".

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

Estoy seguro de que esto solía funcionar, pero he pasado por algunas actualizaciones de OS X y OmniGraffle desde la última vez que ejecuté ese script, y cuando lo intento ahora, aparece un error. (Todavía estoy usando OmniGraffle Pro 4, no el nuevo OmniGraffle Pro 5)

¿Hay alguna otra forma de cambiar solo el texto sin cambiar los atributos de estilo o una solución para el error anterior (que sospecho que es un error)? ¿Funciona en OmniGraffle Pro 5?

    
pregunta Rinzwind 01.08.2012 - 10:02

1 respuesta

2

Para no cambiar el color, el tamaño de fuente y otros atributos de estilo: debe usar las clases en Text Suite o en Extended Text Suite .

Me gusta esto:

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
    
respondido por el jackjr300 02.08.2012 - 06:18

Lea otras preguntas en las etiquetas