Como obter o teclado com o botão Next, Previous e Done?

Eu quero ter um teclado que tem um botão Next, Previous e Done em cima dele.

Eu já vi isso em muitos aplicativos.

Especialmente onde existem formulários a serem preenchidos.

insira a descrição da imagem aqui

Eu quero conseguir algo semelhante ao teclado acima

Como posso conseguir isso?

Você encontrará a resposta neste outro post . Eu verifiquei a biblioteca iOS e o inputAccessoryView de um UITextField é exatamente o que você está procurando!

Espero que isto ajude !

Acabei de criar uma class chamada BSKeyboardControls que facilita muito a inclusão dos controles em um teclado. A class, instruções e código de exemplo podem ser encontrados aqui no GitHub .

Os controles funcionam para campos de texto e visualizações de texto e são otimizados para iPhone e iPad.

 -(BOOL)textFieldShouldBeginEditing: (UITextField *)textField { UIToolbar * keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; keyboardToolBar.barStyle = UIBarStyleDefault; [keyboardToolBar setItems: [NSArray arrayWithObjects: [[UIBarButtonItem alloc]initWithTitle:@"Previous" style:UIBarButtonItemStyleBordered target:self action:@selector(previousTextField)], [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStyleBordered target:self action:@selector(nextTextField)], [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)], nil]]; textField.inputAccessoryView = keyboardToolBar; } - (void)nextTextField { if (textField1) { [textField1 resignFirstResponder]; [textField2 becomeFirstResponder]; } } -(void)previousTextField { if (textField2) { [textField2 resignFirstResponder]; [textField1 becomeFirstResponder]; } } -(void)resignKeyboard { [textField1 resignFirstResponder]; [textField2 resignFirstResponder]; } 

Eu tenho uma class de utilitário que basicamente faz isso por você.

https://github.com/kalvish21/CustomKeyboard

A ideia é muito simples. Você tem que adicionar uma barra de ferramentas de acessório com itens de botão de barra sobre ele. Há um delegado que define onde o que esse botão fará.

https://github.com/asefnoor/IQKeyboardManager

Este é o melhor manipulador de teclado que vi até agora. Excelente maneira de gerenciar inputs de texto.

Algumas de suas características 1) ZERO LINE OF CODE

2) funciona automaticamente

3) Não Mais UIScrollView

4) Não mais subclasss

5) Não há mais trabalho manual

6) Não mais #imports

Este é um controle personalizado que é colocado diretamente acima do teclado. Eu acho que um UIToolbar pode ser usado para isso.

Passos anteriores e posteriores em torno do firstResponder do textFields e do Done farão a renúncia e também ocultarão a barra de ferramentas.

Para combinar com a animação do teclado, dê uma olhada neste código que encontrei ou no SO: “Qual é a taxa de animação de teclado padrão do iPhone?”

Eu criei um repository com uma implementação deste recurso que funciona no iPhone / iPad em todas as orientações e altamente personalizável.

Como mencionado em outras respostas, é o inputAccessoryView que você está procurando.

Eu gostaria de adicionar uma maneira alternativa aqui, usando este cocoapods:

pod ‘ UITextField-Navigation ‘

Todos os UITextField s terão duas propriedades adicionais: nextTextField e previousTextField . Você pode então simplesmente conectar o nextTextField no Interface Builder e os botões Previous, Next e Done são adicionados automaticamente para você, todos funcionais, nenhum código mais é necessário, nenhuma subsorting.

Você também pode personalizar a interface do usuário, adicionar mais botões, etc, como você deseja.

insira a descrição da imagem aqui insira a descrição da imagem aqui