Estoy trabajando en una aplicación TabBar. En una vista hay una UISearchBar y, cuando se presiona, aparece el teclado.Teclado oculta TabBar
El problema es que el teclado oculta la barra de pestañas.
¿Sabes cómo solucionarlo?
Estoy trabajando en una aplicación TabBar. En una vista hay una UISearchBar y, cuando se presiona, aparece el teclado.Teclado oculta TabBar
El problema es que el teclado oculta la barra de pestañas.
¿Sabes cómo solucionarlo?
Ha sido un tiempo desde que esto era preguntó, pero en aras de la documentación, aquí va: en primer lugar, suscríbase al NSNotificationCenter para recibir la notificación de teclado:
-(void) viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
name:UIKeyboardWillHideNotification object:nil];
}
no se olvide de darse de baja
- (void)viewWillDisappear:(BOOL)animated
{
[self.view endEditing:YES];
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification object:nil];
}
Entonces implementar la función que será llamada por el centro de notificaciones:
- (void) keyboardWillToggle:(NSNotification *)aNotification
{
CGRect frame = [[[self tabBarController] tabBar] frame];
CGRect keyboard = [[aNotification.userInfo valueForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
frame.origin.y = keyboard.origin.y - frame.size.height;
[UIView animateWithDuration:[[aNotification.userInfo valueForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue] animations:^
{
[[[self tabBarController] tabBar] setFrame:frame];
}];
Esto animará la TabBar al ritmo del teclado y mantenerlo en la parte superior .
Lo solucioné mostrando un teclado personalizado en lugar del uikeyboard
nativo.
Descargue el proyecto de muestra de este github enlace.
personalice el teclado con el teclado nativo deseado, ya sea número o palabras.
A continuación, coloque los uibutones debajo del teclado personalizado con controladores tabbar como la imagen que se muestra a continuación. Pruebe esto (futuros visitantes), puede resolver el problema.
Cuando el usuario se concentra en escribir algo para buscar en la barra de búsqueda, ¿por qué quiere las pestañas que se muestran? – Viraj
También diría que es un comportamiento estándar y no debería cambiar eso. –
@Viraj mis comentarios lo quieren, no es mi culpa: P – JAA