AppleScript per eseguire azioni sul testo nel nuovo documento TextEdit

1

Ho bisogno di creare un AppleScript che crei un nuovo file TextEdit , digiti un testo casuale , quindi una tabella potrebbe apparire e darti due opzioni per scegliere il carattere di quel testo , poi lo stesso con il colore , salva il file sul desktop e chiudi TextEdit . Questo è quello che ho finora, ma sono giunto alla fine delle mie conoscenze:

tell application "TextEdit"
    activate
    make new document with properties {text:"XDXDXD"}
    set theDesktopPath to the path to the desktop folder as text
    tell front document
        set font to "Comic Sans MS"
        set size to 40
        set its color to {65535, 0, 0}
    end tell
end tell

Non sono sicuro di come dire cosa non funziona dallo script sopra. Puoi aiutarmi con il completamento dello script?

    
posta Ignas Cibulskas 16.12.2018 - 23:36
fonte

1 risposta

0

Questo è ciò che ho scritto in base a ciò che è stato pubblicato come campione. Per prima cosa imposto il nome file e il percorso del file del documento da creare:

set filename to "test.txt"
set filePath to path to desktop

Ho scritto una finestra di dialogo che richiede un avanzamento di riga con un timeout e una convalida 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

Dopo l'immissione del testo, dico a TextEdit di manipolare il testo in base a ciò che hai fornito e salvarlo in un file sul desktop:

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

L'intero codice dello 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

Lo script così com'è è una base e ci sono molte altre forme di convalida e miglioramenti che possono essere fatti come esistenza di file, test di testo restituito o test di dialogo ma volevo rispondere alla domanda.

Modifica

Il codice per TextEdit dice modificato per includere la chiusura del documento, il testo passato è hard coded come 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

Schermata della finestra di dialogo:

SchermatedelsuddettobloccotellhardcodificatoefileRTFriaperto:

CodicemodificatoperpassareiltestoallafinestradidialogoeRTFaperto:

    
risposta data 20.12.2018 - 16:29
fonte

Leggi altre domande sui tag