2014-09-29 16 views
8

Attualmente sto creando un'estensione per tastiera personalizzata iOS 8 e sto cercando un modo per determinare quando gli utenti passano a un altro input, per modificare il layout.Rileva modifiche al tipo di tastiera nella tastiera personalizzata per iOS 8

Ad esempio, quando un utente seleziona un UITextField di tipo UIKeyboardTypeEmailAddress intendo presentare una tastiera personalizzata, e quando l'utente seleziona un altro UITextField con il tipo UIKeyboardTypeDecimalPad, voglio notarlo, e aggiornare il layout della mia tastiera. Come si ottiene una notifica quando cambia il tipo di tastiera per aggiornare il layout della tastiera?

risposta

8

È possibile rilevare le modifiche al tipo di tastiera in textDidChange. È necessario ottenere il UITextDocumentProxy quindi controllare il proxy keyboardType. Se si tratta di un tipo di tastiera che si desidera supportare, è quindi possibile presentare l'interfaccia utente appropriata. Ad esempio, questo è il modo in cui si dovrebbe rilevare quando deve essere visualizzata la tastiera email:

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

non sta chiamando quando il tipo di tastiera sta cambiando o quando l'utente preme i pulsanti 123/ABC –

Problemi correlati