objective-c xcode macos cocoa touchpad

objective c - ¿Es posible generar programáticamente un evento gestual de Touchpad?



objective-c xcode (4)

Estoy trabajando en el proyecto OS X y quiero generar un evento gestual de Touchpad como NSEventTypeSwipe o NSEventTypeRotate para poder rotar / ampliar, etc. en otras aplicaciones.

Descubrí cómo generar eventos de mouse / teclado pero no touchpad.

¿Alguna idea?


Creo que los eventos de gestos táctiles no se pueden generar fácilmente ya que no existe una API oficial de Apple. Creo que este NSEventTypeMagnify, NSEventTypeRotate, NSEventTypeSwipe son solo para fines de solo lectura mientras se manejan los eventos del sistema de salida. Tal vez Apple, por alguna razón, no quiera hacer de Magic Mouse un touchpad mágico por parte de desarrolladores externos. Este proyecto que Rob Mayoff mencionó no está funcionando correctamente ya que Apple probablemente cambia algo en la estructura de los datos del evento. Así que la transmisión en tal piratería no es futurista. Pero si piensas un poco más, podrías lograr lo que los eventos táctiles harán por otros medios.

  1. ampliación (gesto de pellizco) -> es solo acercar, alejar -> la mayoría de los programas está usando atajos para esto como CMD y +, CMD y -.
  2. la rotación se puede usar con fotos y hay un acceso directo como CMD y L, CMD y R en la aplicación de vista previa.
  3. deslizar - cambiar espacios (escritorios) -> usar CTRL y flechas <- o ->

Cuando veo el simulador de xcode, entiendo que los eventos táctiles podrían generarse mediante programación, y que el simulador de xcode está usando esas rutinas y funciones para transferir los toques del cursor y traducirlos a eventos táctiles, sin embargo, según lo que dijo @robMayoff, parece que Apple no hizo esa biblioteca abierta al público. Emular el mismo comportamiento y crear funciones desde cero sería un poco difícil.

Esta es la referencia de la clase NSTouch: http://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSTouch_Class/Reference/Reference.html#//apple_ref/occ/cl/NSTouch


No hay una API pública para generar esos eventos.

Puede encontrar algún trabajo sobre la síntesis de esos eventos en este proyecto: calftrail/Touch .


Referencia: Guía de manejo de eventos de cacao

La guía anterior de la Biblioteca de Desarrolladores de Mac no indica ningún método conocido para generar gestos de Touchpad mediante programación.

Va tan lejos como para decir que los gestos del touchpad se producen fuera del sistema operativo:

"El hardware del trackpad incluye soporte incorporado para interpretar gestos comunes y para mapear movimientos ..."

Esa guía también menciona explícitamente que las aplicaciones no deben depender de ese único mecanismo de entrada, y por esa razón es mejor incluir soporte para teclado y mouse.

Ahora que Mac y Windows (es decir, Windows 8) son compatibles con monitores de pantalla táctil a nivel de sistema operativo, es cuestión de tiempo antes de que los gestos de pantalla táctil y pantalla táctil programáticos puedan incorporarse en servicios como su proyecto o control de escritorio remoto utilizando la API adecuada cuando se convierta disponible.