Comment savoir ce que UITextField a causé un UIKeyboardWillShowNotification?
Je suis en train d'utiliser un clavier personnalisé dans ma demande, mais je suis frapper des problèmes lorsque vous essayez de le restreindre à un seul objet UITextField.
J'ai basé mon code sur ce projet Xcode (à l'origine trouvé sur ce blog). Ce code ajoute une coutume UIButton (représentant un " point décimal) dans les UIKeyboardTypeNumberPad vue clavier. Il le fait en s'abonnant à UIKeyboardWillShowNotification et modifiant le clavier quand il apparaît.
Que Xcode projet fonctionne très bien, mais quand j'ajoute un supplément de UITextField, la clé personnalisée est mis dans le clavier pour que le champ de texte trop, même si j'ai choisi un de complètement différent type de clavier pour que le champ de texte.
J'ai tenté de s'inscrire pour voir uniquement les UIKeyboardWillShowNotification notifications à partir d'un seul objet UITextField, mais cela ne semble pas fonctionner:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:exampleViewController.textField];
J'ai aussi essayé d'examiner l'objet à l'intérieur de la NSNotification passé à keyboardWillShow, mais malheureusement, il se réfère au clavier, pas de contrôle d'INTERFACE utilisateur qui a causé le clavier apparaissent.
2009-10-21 19:50:22.205 Example[6302:207] NSConcreteNotification 0x321ebd0 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = 0.300000011920929;
UIKeyboardBoundsUserInfoKey = NSRect: {{0, 0}, {320, 216}};
UIKeyboardCenterBeginUserInfoKey = NSPoint: {160, 588};
UIKeyboardCenterEndUserInfoKey = NSPoint: {160, 372};
}}
Suis-je malentendu le addObserver interface? Il doit sûrement y avoir un moyen de vous abonner à des notifications à partir d'un contrôle d'INTERFACE utilisateur?
Personne n'a eu d'autres suggestions sur la façon de réaliser cet objectif?
source d'informationauteur Dan J
Vous devez vous connecter pour publier un commentaire.
Ne pouvait pas faire de la ci-dessus pour travailler. Eu à le faire manuellement:
Vous pouvez écrire une UIView catégorie de méthode pour trouver les premiers intervenants.
Puis dans votre
- (void)keyboardWillShow:(NSNotification *)notification
méthode, vous pouvez l'utiliser comme ceciQue le projet fonctionne très bien, mais quand j'ajoute un supplément de UITextField, la clé personnalisée est mis dans le clavier pour que le champ de texte.
Vous pouvez définir le type de clavier pour un
UITextField
instance, par exemple:ou:
De recherche Xcode de l'aide sur
UITextInputTraits Protocol
pour une liste deUIKeyboardType
constantes.J'ai atteint cet avant par la comparaison de l'objet avec l'INTERFACE utilisateur de l'objet que je me suis intéressé dans de. Comme ceci: