2017-12-20 1 views
0

Ich habe eine Taschenrechner-App in Swift geschrieben, und es ist voll kompatibel mit benutzerdefinierten Tastenkombinationen. Ich versuche, eine Methode aufrufen, wenn der Benutzer drückt Befehl + C aber wenn ich versuche, die folgende benutzerdefinierte Verknüpfung zuweisen, es funktioniert einfach nicht:Wie erkennt man einen Befehl C in meiner App (Swift)?

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction)) 

Die commandCAction Methode nie aufgerufen , im Gegensatz zu den anderen Verknüpfungen. Ich nehme an, dies liegt daran, dass Apple diese Verknüpfung reserviert hat. Gibt es Beobachter oder Methoden, mit denen ich feststellen kann, wenn der Benutzer Command + C auf einer physischen Tastatur drückt?

Antwort

0

fand ich das Problem, aus irgendeinem Grund auf meinem Simulator funktioniert nicht:

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction)) 

Allerdings, wenn ich auf einem physischen Gerät versucht, es funktionierte! Das ist also eine Lösung für jemanden mit dem gleichen Problem wie ich.

1

Die Dokumentation für UIKeyCommand besagt: "Tastaturbefehle, die bekannten Systemereignissen zugeordnet sind (wie Ausschneiden, Kopieren und Einfügen), werden automatisch an die entsprechenden Antwortmethoden weitergeleitet".

Ihre beste Vorgehensweise könnte darin bestehen, die UI-Elemente, in denen Sie den Befehl abfangen und eigene copy: implementieren möchten, abzuleiten.

Verwandte Themen