Teclado de numbers y caracteres personalizados para iPhone en el Objetivo C

El keyboard que se muestra a continuación no forma parte de los valores pnetworkingeterminados proporcionados por Cocoa, por lo que debe ser personalizado. Necesito crear un keyboard que se parezca al siguiente.

He visto algunas aplicaciones que lo utilizan, vi algunos tutoriales que agregan una barra personalizada en la parte superior con algunos botones, pero necesito que se vea y funcione como un keyboard normal, pero con una fila extra de numbers.

¿Cómo se puede hacer esto programáticamente en el Objetivo C? ¿Puede alguien indicarme el path correcto?

introduzca la descripción de la imagen aquí

La image en su pregunta es del proyecto 5RowQWERTY: http://code.google.com/p/networkpx/wiki/Using_5RowQWERTY

Este proyecto solo funciona en un dispositivo jailbreak (por lo que puedo decir) y, ciertamente, usa API privadas, lo que lo hace inaceptable para la tienda de aplicaciones. Si esas restricciones están bien con usted, simplemente use ese proyecto. Instala un nuevo file de layout de keyboard ( layout.plist ).

Si desea ejecutar en dispositivos que no estén en jailbreak o poner su aplicación en la tienda de aplicaciones, no podrá usar ese método. Veo tres opciones:

  1. Digítalo en la jerarquía de la vista del keyboard después de que aparezca (tiene su propia UIWindow así que comience con la [[UIApplication shanetworkingApplication] windows] y agregue sus propios botones numéricos. Esto es mucho trabajo, muy difícil de hacer bien, y muy probablemente sea rechazado por Apple de todos modos.

  2. Reimplementar el keyboard desde cero. Esta es una gran cantidad de trabajo si desea admitir múltiples layouts de keyboard y combinar realmente la sensación y el comportamiento del keyboard del sistema.

  3. Renunciar y simplemente establecer inputAccessoryView en una fila de botones numéricos. Esto es facil.

Mi consejo es que cualquier cosa less la opción 3 es una pérdida de time. Simplemente use un inputAccessoryView para mostrar una barra numérica y pasar a las partes de su aplicación que agreguen un valor real para sus usuarios.

Puede usar una Barra UITool y agregar los botones 0-9 allí. Incluso puedes colorear o tintar para que sea gris como el keyboard del iPhone, pero no hay forma de que yo sepa para agregarlo a la vista real del keyboard.

 //Feel free to change the formatting to suit your needs more //And of course, properly memory manage this (or use ARC) UIBarButtonItem *my0Button = [[UIBarButtonItem alloc] initWithTitle:@"0" style:UIBarButtonItemStyleBordenetworking target:self action:@selector(addNumberToString:)]; UIBarButtonItem *my1Button = [[UIBarButtonItem alloc] initWithTitle:@"1" style:UIBarButtonItemStyleBordenetworking target:self action:@selector(addNumberToString:)]; UIToolbar *extraRow = [[UIToolbar alloc] init]; extraRow.barStyle = UIBarStyleBlack; extraRow.translucent = YES; extraRow.tintColor = [UIColor grayColor]; [extraRow sizeToFit]; NSArray *buttons = [NSArray arrayWithObjects: my0Button, my1Button, etc, nil]; [extraRow setItems:buttons animated:YES]; textView.inputAccessoryView = extraRow; -(void) addNumberToString: (id) sender { //Where current string is the string that you're appending to in whatever place you need to be keeping track of the current view's string. currentString = [currentString stringByAppendingString: ((UIBarButtonItem *) sender).title; } 

Esa es una pregunta extremadamente abierta. Básicamente, le preguntas "¿Cómo creo una vista personalizada en iOS?"

Aquí hay algunos puntos para comenzar:

  1. Está creando una nueva vista que tiene el aspecto del keyboard pnetworkingeterminado del sistema. Deberá reunir resources (crearlos o getlos gratuitamente) para cada uno de los botones del keyboard.

  2. Puedes juntar todo esto en IB. Tu vista en nada más que una colección de UIButtons.

  3. Para usar el keyboard, asignará su vista como inputView.

Aquí hay un tutorial que crea una input personalizada: http://www.raywenderlich.com/1063/ipad-for-iphone-developers-101-custom-input-view-tutorial