2010-07-28 8 views

Odpowiedz

1

O ile mogę powiedzieć, nie ma specjalnego API dla wydarzeń na klawiaturze lub określonych zdarzeń związanych z uderzeniami klawiszy, jak na pulpicie. Wierzę jednak, że w systemie iOS 3.2 masz znacznie większy dostęp do klawiatury i możesz mieć dostęp do tych wydarzeń dotykowych. Nie jestem pewien, w jaki sposób zewnętrzna klawiatura to uwzględni. Wydaje się, że jest to coś, o czym Apple tak naprawdę nie myślał lub nie zadecydowało, że nie jest ważne.

0

nie jestem pewien, że to będzie działać, ale jeśli widok najwyższego poziomu danej aplikacji tworzy ukryty widok tekstowy następnie wywołuje następnie odpowiedział na UITextViewTextDidChangeNotification s „[textView becomeFirstResponder];” może być w stanie odebrać klucze sterujące wprowadzone w tekście pole. Wadą jest to, że trzeba będzie zablokować klawiaturę pojawiającą się, jeśli nie ma zewnętrznej klawiatury i nie chcesz oferować bezpośredniego wprowadzania tekstu.

+0

znaki kontrolne nie są przekazywane przez tę protokół. nie miałoby sensu. trzymanie klawiatury w dół nie działa bez prywatnego api. –

2

Podczas gdy to pytanie jest dość stare, firma Apple dodała obsługę skrótów klawiaturowych w systemie iOS 7. Aby uzyskać specjalne wsparcie dla skrótów klawiaturowych, zapoznaj się z UIKeyCommand class w UIKit Framework. Kroki wysokim poziomie przez nas są:

  1. Użyj statycznego keyCommandWithInput:modifierFlags:action: metodę na klasie UIKeyCommand stworzyć instancję UIKeyCommand dla określonych klawiszy modyfikatorów. Należy zauważyć, że wszelkie skróty klawiaturowe obsługiwane przez system (np. Command-C do kopiowania) nie będą działać. Przekażemy także selektor akcji, który zostanie wywołany, gdy zostanie użyty skrót klawiaturowy.
  2. Powiąż nowo utworzony obiekt UIKeyCommand z obiektem obiektu respondenta, zwracając je z właściwości obiektu obiektu odpowiadającego: keyCommand.
  3. Po naciśnięciu klawiszy zostanie wybrany twój selektor.