2012-03-17 12 views
6

L'app per iPhone non sembra utilizzare tastiere morbide che non utilizzano il layout QWERTY simile a quello degli Stati Uniti. Questo è quando ho impostato la tastiera in francese o in Germania, anche i campi di testo non possono contenere testo e un messaggio di errore No input manager class for input mode viene mostrato nella console (quando eseguito il debug in Xcode). Passare alla tastiera Emoji mostra anche lo stesso problema. Ma il problema non si verifica sui layout di tastiera QWERTY, come tastiere olandesi e indonesiane.Impossibile digitare utilizzando tastiere non QWERTY su iOS

Tutti i casi sono coerenti e riproducibili sia con il dispositivo (iPhone 4) che con il simulatore iPhone. Questi sono i messaggi di errore nella console di debug del Xcode

Quando la tastiera è impostata su Francese:

No input manager class for input mode: fr_FR

Quando la tastiera è impostata su Germania:

No input manager class for input mode: de_DE

Quando il tastiera è impostata su Emoji:

No input manager class for input mode: emoji

L'obiettivo di distribuzione della mia app è iOS 3.1.3 (sto ancora supportando i dispositivi di prima generazione) ma l'ambiente di sviluppo è Xcode 4.3.1 e iOS 5.1 Simulator. (Non so se questo è rilevante, ma nel caso).

Chiunque può aiutare a risolvere questo problema?

Grazie in anticipo.

+1

E' difficile dire che cosa è la fonte, suppongo ci sia nessun problema per i nuovi progetti? Sarebbe utile crearne uno per testare e aggiungere i framework usati uno per uno, probabilmente ti aiuterà a trovarne uno obsoleto o a fornire maggiori dettagli ad Apple durante l'invio di un bug. –

+0

Sì, il problema non appare per i nuovi progetti. – adib

+2

Ti suggerisco quindi di includere uno a uno tutti i framework dal progetto buggy a uno nuovo. Ciò ti aiuterà a identificare il problema, a indirizzare la domanda agli sviluppatori di framework e a pubblicare un suggerimento come risposta. –

risposta

2

Nel mio caso, questo è stato causato dal mio swizzling -[NSBundle infoDictionary] e restituendo una copia del dizionario originale.

Ho fatto questo per poter modificare i valori del dizionario delle informazioni in fase di esecuzione (in particolare, fornendo un nome visualizzato del bundle non abbreviato per sostituire il valore abbreviato utilizzato nella schermata iniziale).

La correzione era di non restituire una copia del dizionario informazioni, ma con un po 'di magia riflessione gestire ogni tasto ottenuto dal dizionario:

https://github.com/Lyndir/Pearl/blob/master/Pearl/NSBundle%2BPearlMutableInfo.m

+0

Per il mio caso, ho semplicemente rimosso la mia implementazione di [NSBundle infoDictionary] – adib

1

Non sono sicuro se questa risposta vi aiuterà ma ho trovato da questo link: http://code.google.com/p/networkpx/wiki/Creating_Keyboard_Bundles

Comunque qui è che cosa sto parlando:

come UIKeyboardLayoutClass, questo campo può anche essere indicato utilizzando la sintassi stessa "= xxx". Puoi anche scrivere il nome della classe della tua classe di gestore di input qui.

Se questo campo è mancante, non verrà utilizzato alcun gestore di input.

Speriamo che questo ti possa aiutare!

Problemi correlati