Estoy tratando de usar un teclado personalizado en mi aplicación, pero estoy teniendo problemas al tratar de restringirlo a un UITextField en particular.¿Cómo saber qué UITextField causó un UIKeyboardWillShowNotification?
He basado mi código en this Xcode project (originalmente encontrado en this blog). Ese código agrega un UIButton personalizado (que representa un 'punto decimal') en la vista del teclado UIKeyboardTypeNumberPad. Lo hace suscribiéndose a UIKeyboardWillShowNotification y modificando el teclado cuando aparece.
Ese proyecto de Xcode funciona muy bien, pero cuando agrego un UITextField adicional, la clave personalizada también se coloca en el teclado para ese campo de texto, aunque he seleccionado un tipo de teclado completamente diferente para ese campo de texto.
que intentó registrar sólo para ver las notificaciones UIKeyboardWillShowNotification desde el particular UITextField, pero eso no parece funcionar:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:exampleViewController.textField];
También trató de inspeccionar el objeto en el interior del NSNotification pasó a keyboardWillShow, pero desafortunadamente se refiere al teclado, no al control de la IU que hizo que apareciera el teclado.
2009-10-21 19:50:22.205 Example[6302:207] NSConcreteNotification 0x321ebd0 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = 0.300000011920929;
UIKeyboardBoundsUserInfoKey = NSRect: {{0, 0}, {320, 216}};
UIKeyboardCenterBeginUserInfoKey = NSPoint: {160, 588};
UIKeyboardCenterEndUserInfoKey = NSPoint: {160, 372};
}}
¿Estoy mal entendido la interfaz addObserver? ¿Seguramente debe haber una forma de suscribirse a las notificaciones de un control de IU particular?
¿Alguien ha recibido alguna otra sugerencia sobre cómo lograr esto?
puse específicamente la otra UITextField utilizar diferentes tipos de teclado. Desafortunadamente, el código del 'teclado personalizado' modifica cualquier teclado que aparezca, y no puedo encontrar la manera de distinguir qué UITextField causó que ocurriera la notificación de UIKeyboardWillShowNotification. Actualicé la publicación para aclarar un poco más. –