5 votos

¿Por qué los flujos de trabajo de Automator no reemplazan el texto seleccionado con la salida de sus acciones en Safari 14 (en MacOS 11)?

Después de actualizar de Safari 13 a Safari 14 (en MacOS 10.15.6), me he dado cuenta de que todos mis flujos de trabajo de Automator de filtrado de texto ya no funcionan correctamente cuando se invocan desde el Safari actualizado.

Para ver un ejemplo de un flujo de trabajo de este tipo, consulte la siguiente captura de pantalla. Muestra un flujo de trabajo simple que toma la selección de texto actual, lo canaliza a través del fmt y sustituye la selección original original con la salida de ese comando:

fmt: an example of text-filtering workflow

Tengo algunos flujos de trabajo de esta construcción, es decir, que consisten en un único Ejecutar Shell script acción que ejecuta un comando que toma la selección de texto en su stdin y emite el texto para reemplazar la selección en su salida estándar. Los he estado usando sin problemas durante mucho tiempo (al menos, en las dos últimas versiones de versiones de MacOS).

Sin embargo, cuando un flujo de trabajo como ese se ejecuta desde el recién actualizado Safari 14, no consigue reemplazar la selección de texto con la salida del flujo de trabajo. En su lugar, simplemente borra el texto seleccionado. El problema es claramente específico de Safari 14, porque los mismos flujos de trabajo siguen funcionando correctamente (es decir, reemplazar la selección con la salida del comando) en todas las demás aplicaciones (por ejemplo, TextEdit).

¿Esto se debe a alguna novedad relacionada con la seguridad en Safari 14 que se puede desactivar, o es simplemente un error de regresión que se ha introducido en esta actualización? ¿Hay alguna solución conocida aparte de aparte de simular el copiar y pegar para la salida del comando en flujos de trabajo de Automator?

0voto

HUSTEN Puntos 118

No estoy seguro de qué es exactamente lo que estás tratando de lograr, pero tengo un código AppleScript para reemplazar caracteres y tal vez puede ser una buena manera para que usted comience. Esta solución funciona sin importar el programa porque utiliza GUI scripting, sólo tienes que seleccionar el texto e invocar el Servicio.

Como puedes ver el código está cambiando todo  : para  / ; puedes utilizarlo para adaptarlo a tus necesidades.

on run {}
    tell application "System Events"
        key code 8 using {command down} -- Cmd+C Copy text to clipboard
        delay 0.1
        set the new_path to (the clipboard as string)
        set save_location to my replace_chars(new_path, ":", "/")
        delay 0.1
        set the clipboard to save_location
        key code 9 using {command down} -- Cmd+V Paste clipboard back
    end tell
end run

on replace_chars(this_text, search_string, replacement_string)
    set AppleScript's text item delimiters to the search_string
    set the item_list to every text item of this_text
    set AppleScript's text item delimiters to the replacement_string
    set this_text to the item_list as string
    set AppleScript's text item delimiters to ""
    return this_text
end replace_chars

Workflow screenshot

0voto

ib. Puntos 145

En este punto es bastante obvio que se trata efectivamente de un error. Después de persistir durante varios meses en las versiones de Safari 14.0 14.0.1, y 14.0.2, tanto en MacOS Catalina (hasta 10.15.7) y Big Sur (hasta la 11.1), el error ha sido finalmente corregido en Safari 14.0.3 con el lanzamiento de MacOS 11.2 el 1 de febrero de 2021 .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X