2010-07-28 12 views

Respuesta

1

Por lo que puedo decir, no hay una API especial para eventos de teclado o eventos de pulsaciones de teclas específicas como las que obtendría en el escritorio. Pero creo que en iOS 3.2 tienes mucho más acceso al teclado y es posible que puedas acceder a esos eventos táctiles. No estoy seguro de cómo un teclado externo podría tenerlo en cuenta. Parece que esto es algo en lo que Apple realmente no ha pensado, o que ha decidido que no es importante.

0

No estoy seguro de que esto funcione, pero si la vista de nivel superior de la aplicación crea una vista de texto oculto y luego responde "[textView becomeFirstResponder];", puede responder las UITextViewTextDidChangeNotification s que puede recoger en el texto campo. La desventaja es que tendrías que suprimir el teclado que aparece si no hay un teclado externo conectado y no quieres ofrecer ninguna entrada de texto directa.

+0

Los caracteres de control no se pasan por ese protocolo. tampoco tendría sentido. mantener el teclado presionado no funciona sin una API privada. –

2

Si bien esta pregunta es bastante antigua, Apple ha agregado soporte para accesos directos específicos del teclado en iOS 7. Consulte el UIKeyCommand class en el Marco de UIKit para obtener soporte especial para los atajos de teclado de hardware. Los pasos de alto nivel para nosotros son:

  1. usa el método estático de la clase keyCommandWithInput:modifierFlags:action:UIKeyCommand para crear una instancia de la UIKeyCommand de las claves especificadas con modificadores. Tenga en cuenta que cualquier atajo de teclado manejado por el sistema (como Command-C para copiar) no funcionará. También pasará un selector de acción que se invocará cuando se use el atajo de teclado
  2. Asociar este recién creado UIKeyCommand con su (s) objeto (s) respondedor (s) devolviéndolos desde la propiedad keyCommand del objeto respondedor.
  3. Cuando se presionan las teclas, se llamará a su selector.
Cuestiones relacionadas