2010-07-16 3 views
1

Comment définir un clavier personnalisé spécifique à un UITextField? Lorsque je change using this method, tous les claviers de mon application sont remplacés par ce nouveau clavier personnalisé. J'ai ajouté:Comment définir un clavier personnalisé spécifique à un seul champ UItext

[[NSNotificationCenter defaultCenter] addObserver:self.view 
             selector:@selector(keyboardWillShow:) 
             name:UIKeyboardWillShowNotification 
             object:nil]; 

dans UIViewController. Mais après avoir passé à UIView, les claviers des autres UIViewController ressemblent également à un nouveau clavier personnalisé. Comment puis-je limiter le clavier personnalisé à un seul UIView? Aidez-moi, s'il vous plaît. Merci d'avance.

Répondre

1

Mon problème a été une fois am chargement clavier personnalisé, il reste partout dans d'autres UIViews d'application. J'ai donc vérifié l'existence de UIToolbar dans d'autres sous-vues UIkeyboard et supprimé. Maintenant, ce fonctionne bien ..

for(UIView* keyboardToolbar in [keyboard subviews]){ 
     if([[keyboardToolbar description] hasPrefix:@"<UIToolbar"] == YES) 
      { 
       [keyboardToolbar removeFromSuperview];  
      } 
    } 
+1

au lieu d'utiliser hasPrefix pour déterminer si une instance d'une classe particulière, utilisez 'isMemberOfClass:' ou 'isKindOfClass:' – Jasarien

1

Si vous avez sous-classé UITextView (comme le montre ce didacticiel), toutes les instances de cette sous-classe utiliseront la barre d'outils avec un bouton de rejet.

Si vous ne voulez pas la barre d'outils, n'utilisez pas la sous-classe, utilisez simplement UITextView d'origine.

+0

Je ne suis pas le sous-classement UITextView. J'ai utilisé seulement cette méthode keyboardWillShow et la méthode addObserver. Est-ce parce que j'utilise pour (UIWindow * keyboardWindow dans [[UIApplication sharedApplication] windows])? –

1

Vous pouvez vérifier le champ de texte que vous voulez sur le textFieldShouldBeginEditing comme ceci:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (textField == YOUR_DESIRED_TEXTFIELD) { 
     [self openCustomKeyboard]; 
    } 
    return YES; 
} 
4
UITextField* textField; 
UIView* customKeyboard; 


textField.inputView = customKeyboard; 

fil similaires: iPad custom Keyboard GUI

Questions connexes