Ich mache eine benutzerdefinierte Eingabemethode für das iPad, ich möchte in der Lage sein, die Systemtastatur durch meine Eingabemethode zu ersetzen und Text über diese Eingabemethode einzugeben.UITextView inputView
Gemäß der Dokumentation muss ich nur die Eigenschaft inputView mit meiner Ansicht festlegen und es wird anstelle der Systemtastatur verwendet. Ich habe das gemacht und es funktioniert, was das Zeigen der Tastatur angeht, aber wie gebe ich tatsächlich Text in die Textansicht ein?
Angeblich muss die Textansicht den UIKeyInput übernehmen und ich kann die Methoden des Protokolls verwenden, um den Text einzugeben, aber in Wirklichkeit nimmt UITextView dieses Protokoll nicht an. conformsToProtocol:@protocol(UIKeyInput)
gibt NO zurück und "deleteBackwards" ist nicht implementiert (insertText und hasText sind implementiert. Außerdem führt "insertText" nicht dazu, dass die textViewDidChange:
Delegate-Methode aufgerufen wird. Offensichtlich muss ich die UIKeyInput
-Methode an ein anderes Objekt senden (ein Feld-Editor?), aber wie kann ich es bekommen?
Irgendwelche Ideen?
Danke. Diese Lösung ist nett, aber ich möchte, dass die Textansicht tatsächlich die Bearbeitung durchführt (und sich normal verhält, komplett mit Autokorrektur usw.) und den Text nicht selbst bearbeitet. –
Ich rief DTS darüber und es scheint, dass Ihre Lösung in der Tat die einzige Option ist. Ihre Antwort war, dass UIKeyInput (und UITextInput) nicht für den Client ist (das heißt, Sie sollten diese Methoden niemals selbst aufrufen), sondern nur für Ansichten, die Tastatureingaben erhalten möchten. –