2 votos

¿Cómo puedo hacer que la vista previa deje de envolverse al paginar?

Si abro un documento PDF en Vista Previa y navego por las páginas normalmente utilizando Page down y Page up Si mantengo pulsadas las teclas para activar la repetición automática, cuando llego a la parte inferior (o superior) del documento, Vista Previa da la vuelta y me muestra de nuevo la parte superior (o inferior). Por ejemplo, si mantengo pulsada la tecla Page down para avanzar en la página, y cuando llega al final del documento, no se detiene allí; vuelve a empezar desde el principio, dando vueltas en una especie de bucle. El comportamiento sólo sucede si configuro mi tasa de repetición de teclas (en las preferencias del sistema) al máximo posible.

¿Qué podría causar esto, y cómo puedo evitar que ocurra (sin reducir la tasa de repetición del teclado), para que la Vista Previa se detenga cuando llegue a la parte superior o inferior de un documento?

Esto es en MacOS 10.13.6, en un iMac. Esto ocurre tanto con un teclado Kinesis Pro como con un teclado USB Dell estándar; ambos tienen teclas dedicadas para subir/bajar página. En la configuración de la Vista Previa, "abrir por primera vez" está configurado como desplazamiento continuo. Ejemplo de un archivo PDF al azar en el que ocurre: https://www.apple.com/procurement/pdf/impact-accelerator.pdf Aquí hay una grabación de vídeo que muestra el comportamiento: https://share.getcloudapp.com/8LubXNo5

2voto

user3439894 Puntos 5883

Según se ha descubierto, este problema sólo existe actualmente con Vista previa cuando el Repetición de llaves deslizador en el Teclado ficha de la Teclado panel en Preferencias del sistema se ajusta a Rápido , donde el deslizador es todo el camino a la derecha. Por defecto es una posición desde la derecha.

Este es un solución solución que establece el Repetición de llaves deslizador a la posición por defecto cuando Vista previa se activa, y a Rápido cuando se desactiva, (es decir, se da/se pierde el foco del teclado/ratón).

Utiliza el aplicación de terceros Cuchara de martillo junto con un poco de Lua código para vigilar Vista previa que se activa/desactiva, y un AppleScript script utilizando Guiones de interfaz de usuario para ajustar el Repetición de llaves deslizador en el Teclado ficha de la Teclado panel en Preferencias del sistema .

El ejemplo Lua código y ejemplo AppleScript código que se muestra más adelante, se probó bajo MacOS High Sierra y MacOS Catalina con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume la configuración necesaria y adecuada en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>> <strong>Accesibilidad </strong>se han fijado/abordado según las necesidades.

  • Tenga en cuenta que las instrucciones de descarga e instalación suponen Safari y por defecto preferencia [] Abrir archivos "seguros" después de la descarga revisado.

Descargar Cuchara de martillo


Instalar Cuchara de martillo

  • Abrir el Descargas carpeta y arrastrar y soltar el Cuchara de martillo paquete de aplicaciones en Aplicaciones .

  • Antes de abrir Cuchara de martillo , añádelo a: Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad

Abrir Cuchara de martillo de Aplicaciones o Foco de atención entonces:

Desde el Cuchara de martillo menú, en el barra de menús , haga clic en él y, a continuación, haga clic en Preferencias y los fijamos de la siguiente manera:

Preferencias de Hammerspoon

Comportamiento:

  • [] Lanzar Hammerspoon en el inicio de sesión
  • [] Comprobar las actualizaciones
  • [ ] Mostrar el icono del dock
  • [] Mostrar el icono del menú
  • [ ] Mantener la ventana de la consola en la parte superior
  • [ ] Enviar datos de colisión (requiere reiniciar)

La accesibilidad: La accesibilidad está activada. Ya está todo listo.
          Activar la accesibilidad (Debería estar en gris.)

Cerrar Preferencias de Hammerspoon .


Añadiendo el código Lua a Cuchara de martillo

Abrir el Cuchara de martillo configuración archivo haciendo clic en el botón Abrir la configuración comando de la Cuchara de martillo menú, en el barra de menús .

Añade el ejemplo Lua código a la init.lua configuración archivo y guardar el documento y luego ciérrala.


Ejemplo Lua código :

function applicationPreviewWatcher(appName, eventType, appObject)
    if (eventType == hs.application.watcher.activated) then
        if (appName == "Preview") then
            local asFile = "/.hammerspoon/Scripts/ChangeKeyRepeatValue.applescript"
            local ok, status = hs.osascript.applescriptFromFile(os.getenv("HOME") .. asFile)
        end
    end
    if (eventType == hs.application.watcher.deactivated) then
        if (appName == "Preview") then
            local asFile = "/.hammerspoon/Scripts/ChangeKeyRepeatValue.applescript"
            local ok, status = hs.osascript.applescriptFromFile(os.getenv("HOME") .. asFile)
        end
    end 
end
appPreviewWatcher = hs.application.watcher.new(applicationPreviewWatcher)
appPreviewWatcher:start()
-- appPreviewWatcher:stop()

Añadir el AppleScript script a Cuchara de martillo

En Terminal :

mkdir -p ~/.hammerspoon/Scripts
touch ~/.hammerspoon/Scripts/ChangeKeyRepeatValue.applescript
open ~/.hammerspoon/Scripts/ChangeKeyRepeatValue.applescript

Cerrar: Terminal (Se supone que no hay errores de los anteriores <em>comandos </em>.)

En Script Editor :

Añade el ejemplo AppleScript código , que se muestra a continuación, a la abierta ChangeKeyRepeatValue.applescript documento , luego guárdelo y cierre el documento .

Cerrar: Script Editor

NOTA: Una vez hecho esto, puede hacer clic en el botón Recargar la configuración comando en el Cuchara de martillo menú, en el barra de menús .

Esto debería alternar el Repetición de llaves deslizador en el Teclado ficha de la Teclado panel en Preferencias del sistema como Vista previa se activa/desactiva.


Ejemplo AppleScript código :

--  # 
--  # NOTE: Hammerspoon does not allow the use of the
--  #       AppleScript line continuation character.
--  #       Therefore code must be written in long form.
--  #       It also doesn't like the use of some characters
--  #       such as symbols for modifier keys and others
--  #       in comments and possibly in code as well.
--  # 
--  # ChangeKeyRepeatValue.applescript
--  #
--  # Change the value of Key Repeat on the Keyboard tab 
--  # of the Keyboard pane in System Preferences. 
--  # 

--  # Check to see if System Preferences is 
--  # running and if yes, then close it.
--  # 
--  # This is done so the script will not fail 
--  # if it is running and a modal sheet is 
--  # showing, hence the use of 'killall' 
--  # as 'quit' fails when done so, if it is.
--  #
--  # This is also done to allow default behaviors
--  # to be predictable from a clean occurrence.

if running of application "System Preferences" then
    try
        tell application "System Preferences" to quit
    on error
        do shell script "killall 'System Preferences'"
    end try
    delay 0.1
end if

--  # Make sure System Preferences is not running before
--  # opening it again. Otherwise there can be an issue
--  # when trying to reopen it while it's actually closing.

repeat while running of application "System Preferences" is true
    delay 0.1
end repeat
--  # Get the name of the frontmost application.

tell application "System Events"
    set appName to name of process 1 whose frontmost is true
end tell

--  # Open System Preferences to the Keyboard tab of the Keyboard pane.

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
end tell

--  # Change the value of Key Repeat as coded.

tell application "System Events"
    tell application process "System Preferences"
        set i to 0
        repeat until exists slider 2 of tab group 1 of window 1
            delay 0.1
            set i to i + 1
            if i > 30 then return
        end repeat
        if appName = "Preview" then
            set value of slider 2 of tab group 1 of window 1 to 6.0
        else
            set value of slider 2 of tab group 1 of window 1 to 7.0
        end if
    end tell
end tell

delay 0.1
tell application "System Preferences" to quit

Notas:

Tal y como está codificado actualmente, supone que cuando Cuchara de martillo se carga primero que el Repetición de llaves deslizador en el Teclado ficha de la Teclado panel en Preferencias del sistema se ajusta a Rápido y Vista previa es no frontales .

Es normal ver el Preferencias del sistema en el icono Muelle rebote una vez mostrando brevemente el indicador de apertura debajo de él cuando Cuchara de martillo ve que Vista previa se ha activado/desactivado. Se está ejecutando el AppleScript script para cambiar la posición del Repetición de llaves deslizador en el Teclado ficha de la Teclado panel en Preferencias del sistema . Esto en mi sistema toma menos de un segundo. Si puedo encontrar una manera de programar detrás de la escena para hacer este cambio sin tener que usar Guiones de interfaz de usuario con AppleScript Actualizaré el código y notificar al OP.

Hay un problema con esto solución al hacer clic manualmente en Preferencias del sistema en el Muelle cuando Vista previa es frontales . Para abrir manualmente Preferencias del sistema de la Muelle cuando Vista previa es frontales es necesario establecer enfoque lejos de Vista previa primero antes de hacer clic en Preferencias del sistema en el Muelle . El comportamiento cuando Vista previa es frontales e intentar abrir manualmente Preferencias del sistema de la Muelle resultados en Preferencias del sistema abriéndose y cerrándose, rebotando en el Muelle sin más interacción del usuario. (Veré lo que puedo hacer para resolver este problema, aunque creo que es un error del tipo de la naturaleza de la bestia que uno sólo tendrá que ser consciente y vivir con el beneficio de lo que esta solución proporciona).

No estoy afiliado a los desarrolladores de <strong>Cuchara de martillo </strong>, sólo un usuario satisfecho con el producto.


Nota: El ejemplo Lua y AppleScript código es sólo eso y sin ningún tipo de inclusión tratamiento de errores no contiene ningún otro tratamiento de errores según corresponda. Corresponde al usuario añadir cualquier tratamiento de errores como sea apropiado, necesario o deseado.

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