Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

¿Están permitidos los anidamientos de display dialog?

Objetivo: Seleccionar desde el cursor hasta el principio del párrafo y mostrar diversas opciones con el texto seleccionado

set copiaSeguridadPpples to (the clipboard as text)
set the clipboard to ""

set opcion to display dialog "Se seleccionó y copió desde la posición del cursor hasta el principio del párrafo…" with title "¿Quieres hacer algo más con la selección…?" buttons {"Cortar o Borrar", "Sustituirla por el Ppples", "Finalizar"} default button "Finalizar"

tell application "System Events" to set nAplic to (name of first application process whose frontmost is true)
tell application nAplic to activate
tell application "System Events" to tell process nAplic

key code 126 using {option down, shift down} -- > [selecciona desde la posición del cursor hasta el principio del párrafo]
delay 0.05
keystroke "c" using command down
delay 0.1
set nuevoPpples to (the clipboard as text)

-- Si resultado es ninguna selección…
if (the clipboard as text) is "" then
    display dialog "Ninguna selección. Script finalizado" with title "Error"
    error number -128
end if

try

** --### Se intenta hacer un anidamiento de display dialog (otro display dialog dentro de una opción de otro display dialog)
--### Se pretende desdoblar la opción "Cortar o Borrar" en "Cortar" y "Borrar" mediante un display dialog dentro de una opción de otro display dialog. Una especie de "anidamiento"
--### No logro hacer que funcione y no sé cuál es el motivo
--### ¿No están permitidos los "anidamientos" de "display dialog" o he cometido un error en algún punto en el script?

    --### Si uso directamente la opción "Cortar o Borrar", sin intentar desdoblarla, funciona sin problemas**

    --###################   
    if button returned of opcion is "Cortar o Borrar" then --  ###    CORTAR / BORRAR
        set cortarBorrar to display dialog "¿Quieres cortar o borrar la selección?" with title "¿Qué hacer con la selección?" with icon some item of {0, 1, 2} buttons {"Cortarla", "Borrarla"} default button "Borrarla"
        if button returned of cortarBorrar is "Cortarla" then
            keystroke "x" using command down -- → Cortar
            delay 0.1
        else if button returned of cortarBorrar is "Borrarla" then
            key code 51 --  → Borrar
            delay 0.1
            set the clipboard to copiaSeguridadPpples
        end if
        --#####################     

    else if button returned of opcion is "Sustituirla por el Ppples" then --  ###     SUSTITUIRLA POR EL PORTAPAPELES"
        set the clipboard to copiaSeguridadPpples
        keystroke "v" using command down
        delay 0.1
        set pples to display dialog "¿Quieres conservar el contenido del portapapeles o sustituirlo por la selección?" with title "¿Qué hacer con el portapapeles?" with icon some item of {0, 1, 2} buttons {"Conservarlo", "Sustituirlo"} default button "Conservarlo"
        if button returned of pples is "Sustituirlo" then set the clipboard to nuevoPpples -- recuperamos el texto de la selección para el portapapeles 
        delay 0.1

    else if button returned of opcion is "Finalizar" then --  ### FINALIZAR
        say "Seleccionado y copiado" -- TEST
        delay 0.1
    else
        display dialog "Ocurrió algo no previsto…  → " with title "¿Qué  habrá pasado?" with icon some item of {0, 1, 2} giving up after 2
        set (the clipboard) to copiaSeguridadPpples -- ### Se repone el contenido inicial del portapapeles 

        error number -128

    end if

on error
    display dialog "Ocurrió algo no previsto…  → " with title "¿Qué habrá pasado?" with icon some item of {0, 1, 2} giving up after 2
    set the clipboard to copiaSeguridadPpples -- Devolver el contenido inicial al portapapeles.

    error number -128
end try

end tell

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...