Dostępność klawiatury do iPadów i iPhone'ów sprawia, że teraz warto dodawać skróty klawiaturowe do aplikacji.Aplikacja na iPhone'a/iPada za pomocą skrótów klawiszowych?
Czy można to zrobić w aplikacji? Jakie są odpowiednie interfejsy API?
Dostępność klawiatury do iPadów i iPhone'ów sprawia, że teraz warto dodawać skróty klawiaturowe do aplikacji.Aplikacja na iPhone'a/iPada za pomocą skrótów klawiszowych?
Czy można to zrobić w aplikacji? Jakie są odpowiednie interfejsy API?
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.
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.
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ą:
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.UIKeyCommand
z obiektem obiektu respondenta, zwracając je z właściwości obiektu obiektu odpowiadającego: keyCommand
.
znaki kontrolne nie są przekazywane przez tę protokół. nie miałoby sensu. trzymanie klawiatury w dół nie działa bez prywatnego api. –