Esto es lo que he escrito en base a lo que se publicó como muestra. Primero establezco el nombre del archivo y la ruta del archivo para crear:
set filename to "test.txt"
set filePath to path to desktop
Escribí un cuadro de diálogo que muestra un salto de línea con un tiempo de espera y una validación vaga:
try
set enteredText to (display dialog "What is your text?" default answer linefeed with title scriptTitle giving up after 40)
if button returned of result = "" or gave up of result = true then error number -128
set enteredText to text returned of enteredText
on error
return display notification "Script cancelled" with title scriptTitle
end try
Después de ingresar el texto, le digo a TextEdit que manipule el texto según lo que ha suministrado y lo guarde en un archivo en el escritorio:
tell application "TextEdit"
activate
set theDoc to make new document with properties {text:enteredText}
tell theDoc
set the color of every word to {65535, 0, 0}
set size to 29
try
set font of theDoc to "Comic Sans MS"
on error
set font of theDoc to "Times"
end try
save in file ((filePath as text) & filename)
end tell
end tell
El código completo del script:
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
(*
Date: 18-12-20
Developer: r2d2
Purpose: prompt for text, manipulate in TextEdit and save to file.
Version: 1.1
Name: textedit_experiment.scpt
*)
set filename to "test.txt"
set filePath to path to desktop
set scriptTitle to "r2d2 TextEdit script"
try
set enteredText to (display dialog "What is your text?" default answer linefeed with title scriptTitle giving up after 40)
if button returned of result = "" or gave up of result = true then error number -128
set enteredText to text returned of enteredText
on error
return display notification "Script cancelled" with title scriptTitle
end try
tell application "TextEdit"
activate
set theDoc to make new document with properties {text:enteredText}
tell theDoc
set the color of every word to {65535, 0, 0}
set size to 29
try
set font of theDoc to "Comic Sans MS"
on error
set font of theDoc to "Times"
end try
save in file ((filePath as text) & filename)
end tell
end tell
return display notification "Script COMPLETED" with title scriptTitle
El guión tal como es es una base y hay muchas otras formas de validación y mejoras que se pueden realizar, como la existencia de archivos, la prueba de texto devuelto o la prueba de diálogo, pero quería responder la pregunta.
Editar:
El código para TextEdit tell se modificó para incluir el cierre del documento, el texto que se aprobó está codificado como foobar
:
tell application "TextEdit"
activate
set theDoc to make new document with properties {text:"foobar"}
tell theDoc
set the color of every word to {65535, 0, 0}
set size to 29
try
set font of theDoc to "Comic Sans MS"
on error
set font of theDoc to "Times"
end try
save in file ((filePath as text) & filename)
end tell
set theDoc to front window
try
close theDoc
on error
display notification "Didn't close document"
end try
end tell
Captura de pantalla del diálogo:
CapturasdepantalladelbloquedecodificacióncodificadoporhardwareanterioryarchivoRTFreabierto:
CódigomodificadoparallevareltextopasadoaldiálogoyRTFabierto: