2012-05-21 10 views
4

J'utilise un clavier numérique pour la saisie à partir d'un objet UITextField. J'ai remarqué que Interface Builder possède une propriété de clé de retour appelée "Terminé". Lorsque je sélectionne "Terminé" dans les options de la touche de retour, je ne vois pas qu'un bouton Terminé est créé sur le clavier numérique. Je vois le bouton "Terminé" sur d'autres types de clavier si je le change d'un clavier numérique à autre chose, mais pas en utilisant un clavier numérique.Comment masquer un clavier numérique iOS

  • Je veux créer un bouton « Terminé » sur le clavier qui permet de masquer le clavier lorsque vous appuyez
  • que je veux faire cela à cause de la quantité de biens immobiliers le clavier prend
  • Je suis très nouveau pour le développement iOS, donc le moyen le plus simple et le moins compliqué pour atteindre cet objectif serait apprécié

Merci d'avance!

+0

Vous souhaitez implémenter ce bouton pour atténuer le clavier? – 8vius

+0

Je viens de le faire sur mon propre projet et cela fonctionne très bien, le bouton de retour se transforme en bouton Terminé. Avez-vous du code supplémentaire qui dérange le clavier? – 8vius

+0

@ 8vius Par défaut, mon clavier numérique n'a aucun bouton de retour. Le bouton en bas à droite est un bouton de retour arrière/supprimer et le coin inférieur gauche est vide. Je n'ai aucun code qui manipule le clavier. – Skizz

Répondre

7

La manière classique de procéder consiste à affecter une barre d'outils contenant un bouton à la propriété inputAccessoryView de la vue de texte.

+1

+1 c'est le chemin à parcourir. – Till

+0

Très bien, merci de me pointer dans la bonne direction. J'ai essayé de faire un peu de recherche et semble avoir raté. Seriez-vous capable de me désigner une ressource qui couvre cela? Merci!! – Skizz

+0

Apple a un exemple de projet dans la bibliothèque de développeur appelée * KeyboardAccessory *. – Jim

0

J'ai trouvé cette solution en ligne, mais il implique de faire une image de votre bouton fait: http://www.neoos.ch/blog/37-uikeyboardtypenumberpad-and-the-missing-return-key

vous pouvez également utiliser la même méthode pour obtenir le point de vue UIKeyboard montré dans l'exemple et faire ce qui suit, comme par @ Jim suggestion:

UIToolbar *keyboardViewToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 206, 320, 44)]; 

UIBarButtonItem *keyboardDoneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneSettingDate)]; 
UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithTitle:@"Enter Number" style:UIBarButtonItemStylePlain target:nil action:nil]; 
UIBarButtonItem *spacer1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                     target:nil 
                     action:nil]; 
UIBarButtonItem *spacer2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                     target:nil 
                     action:nil]; 



NSArray *barButtonItems = [[NSArray alloc] initWithObjects:spacer1, title, spacer2, pickerDoneButton, nil]; 
    [keyboardViewToolbar setItems:barButtonItems]; 

Et d'ajouter cette vue à la vue du clavier.

En outre, comme une suggestion distincte étant donné que vous venez de commencer. Sur iTunes U, vous pouvez télécharger la classe Developing Applications for iOS Stanford, un cours très complet sur le développement iOS, disponible gratuitement sur l'iTunes Store.

+0

Je vais certainement vérifier cela. Merci beaucoup! – Skizz

+0

Pas de problème :) codage heureux. – 8vius

0
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     UIToolbar* KeyBoardToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; 
     KeyBoardToolbar.barStyle = UIBarStyleBlackTranslucent; 
     KeyBoardToolbar.items = [NSArray arrayWithObjects: 
           [[UIBarButtonItem alloc]initWithTitle:[GlobalSettings GetTextBySelectedLocale:@"Done"] style:UIBarButtonItemStyleBordered target:self action:@selector(DismissKeyBoard)], 
           [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], 
           nil]; 
     [KeyBoardToolbar sizeToFit]; 
     txtMessage.inputAccessoryView = KeyBoardToolbar; 
    } 

txtMessage pourrait être UiTextField ou UITextView.

-(void)DismissKeyBoard{ 
    [self.view endEditing:YES]; 
} 
Questions connexes