2014-09-29 16 views
8

Ich erstelle derzeit eine benutzerdefinierte iOS 8-Tastaturerweiterung, und ich suche nach einer Möglichkeit zu bestimmen, wann die Benutzer zu einer anderen Eingabe wechseln, um mein Layout zu ändern.Erkennen von Tastaturtypänderungen in benutzerdefinierter Tastatur für iOS 8

Zum Beispiel, wenn ein Benutzer UIKeyboardTypeEmailAddress ein UITextField mit Typ wählt Ich beabsichtige, eine benutzerdefinierte Tastatur zu präsentieren, und wenn der Benutzer eines anderen UITextField mit Typ wählt UIKeyboardTypeDecimalPad, mag ich es bemerken, und meine Tastatur-Layout zu aktualisieren. Wie wird man benachrichtigt, wenn sich der Tastaturtyp ändert, um das Tastaturlayout zu aktualisieren?

Antwort

8

Sie können Änderungen am Tastaturtyp in textDidChange erkennen. Sie müssen die UITextDocumentProxy bekommen, dann überprüfen Sie die Proxy keyboardType. Wenn es sich um einen Tastaturtyp handelt, den Sie unterstützen möchten, können Sie die entsprechende Benutzeroberfläche anzeigen. So würden Sie beispielsweise feststellen, wenn die E-Mail-Tastatur angezeigt werden soll:

override func textDidChange(textInput: UITextInput) { 
    // Called when the document context is changed - theme or keyboard type changes 

    var proxy = self.textDocumentProxy as UITextDocumentProxy 
    if proxy.keyboardType == UIKeyboardType.EmailAddress { 
     //add code here to display email input keyboard 
    } 
} 
+0

Es wird nicht aufgerufen, wenn sich der Tastaturtyp ändert oder wenn der Benutzer 123/ABC-Tasten drückt –

Verwandte Themen