2010-11-01 8 views
1

J'ai un UIViewController avec un UITextField qui utilise un bouton 'DONE' personnalisé lorsque le type keyboardType est défini sur NumberPad. Je l'ai utilisé un code similaire à ce -Clavier personnalisé sur plusieurs vues

http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key

Cependant, mon problème est que le clavier personnalisé reste partout dans d'autres UIViews d'application. Si j'appelle le clavier d'un autre contrôleur de vue, je reçois toujours le bouton 'DONE' qui recouvre le clavier. J'ai d'autres vues qui ont besoin des versions non personnalisées du UIKeyboard.

Merci

Répondre

1

J'ai commencé avec le même blog exact que vous avez mentionné ci-dessus. J'ai rencontré le même problème parce que j'avais plusieurs types de clavier dans mon application.

Ma solution a inclus ces changements:

1 - Faire le UIButton * DoneButton Une variable membre de la classe contrôleur

2 - Dans la méthode "viewDidLoad", je l'extrait suivant

self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
doneButton.frame = CGRectMake(0, 163, 106, 53); 
doneButton.adjustsImageWhenHighlighted = NO; 
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal]; 
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted]; 
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside]; 

3 - Dans le IBAction "doneButton", j'ai l'extrait suivant pour m'assurer que le bouton est retiré de la vue du clavier.

- (IBAction) doneButton:(id)sender { 
    [self.view endEditing:YES]; 
    [doneButton removeFromSuperview]; 
} 

La logique d'ajouter le bouton est pas différent que le blog décrit aussi longtemps que vous suivez cette direction, vous devriez voir le bouton de votre clavier numérique, puis le voir supprimé lorsque vous cliquez sur le « DONE » bouton.