2012-03-17 13 views
6

Parece que la aplicación de mi iPhone no usa teclados suaves que no usan el diseño QWERTY similar a los EE. UU. Es entonces cuando configuro el teclado en francés o en Alemania, incluso los campos de texto no pueden incluir texto y aparece un mensaje de error No input manager class for input mode en la consola (cuando se depura bajo Xcode). Cambiar al teclado Emoji también muestra el mismo problema. Pero el problema no ocurre en los diseños de teclado QWERTY, como los teclados holandés e indonesio.No se puede escribir con teclados que no son QWERTY en iOS

Todos los casos son consistentes y reproducibles tanto en el dispositivo (iPhone 4) como en el simulador de iPhone. Estos son mensajes de error en la consola depurador del Xcode

Cuando el teclado se establece en francés:

No input manager class for input mode: fr_FR

Cuando el teclado está establecido en Alemania:

No input manager class for input mode: de_DE

Cuando el el teclado está configurado en Emoji:

No input manager class for input mode: emoji

El objetivo de implementación de mi aplicación es iOS 3.1.3 (todavía estoy admitiendo dispositivos de primera generación) pero el entorno de desarrollo es Xcode 4.3.1 y iOS 5.1 Simulator. (No sé si esto es relevante, pero por las dudas).

¿Alguien puede ayudar a solucionarlo?

Gracias de antemano.

+1

Es difícil decir cuál es la fuente, supongo que no hay no hay problema para los nuevos proyectos? Sería útil crear uno para probar y para agregar los marcos utilizados uno por uno, probablemente lo ayude a encontrar uno obsoleto o a proporcionar más detalles a Apple al enviar un error. –

+0

Sí, el problema no aparece para los proyectos nuevos. – adib

+2

Le sugiero que incluya uno a uno todos los marcos del proyecto con fallas a uno nuevo. Eso te ayudará a identificar el problema, dirigir la pregunta a los desarrolladores del framework y publicar una sugerencia como respuesta aquí. –

Respuesta

2

En mi caso, esto fue causado por mi swizzling -[NSBundle infoDictionary] y devolviendo una copia del diccionario original.

Lo hice para poder cambiar los valores del diccionario de información en el tiempo de ejecución (específicamente, proporcionando un nombre para mostrar no acortado para reemplazar el valor abreviado utilizado en la pantalla de inicio).

La solución fue no devolver una copia del diccionario de información, pero con un poco más de magia reflexión manejar cada clave obtenida del diccionario:

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

+0

Para mi caso, simplemente eliminé mi implementación de [NSBundle infoDictionary] – adib

1

No estoy seguro si esta respuesta le ayudará pero me pareció desde este enlace: http://code.google.com/p/networkpx/wiki/Creating_Keyboard_Bundles

De todas formas esto es lo que estoy hablando:

Como UIKeyboardLayoutClass, este campo también puede ser referido usando la misma sintaxis "= xxx". También puede escribir aquí el nombre de clase de su propia clase de administrador de entrada .

Si falta este campo, no se usarán administradores de entrada.

Espero que esto te ayude!

Cuestiones relacionadas