2

J'ai UIView Subclass auquel j'ai ajouté un UITextField. J'ai défini cette vue comme la vue de dessus de mon Viewcontroller. Dans le UIViewSubclass, j'ai remplacé inputViewController getter pour fournir un clavier personnalisé.Le paramètre inputViewController de superview est appelé lorsqu'il est appuyé sur la sous-vue (UITextView)

Lorsque je sélectionne le UITextField, je suppose que le becomeFirstResponder de UITextField est appelé et je verrais le clavier associé. Cependant, en dehors de cela, la méthode inputViewController sur mon UIView Subclass est également appelée provoquant l'affichage de la vue d'entrée du champ de texte et de l'UIView l'une sur l'autre. Je ne vois pas non plus canBecomeFirstResponder ou becomeFirstResponder être appelé sur mon UIView's subclass. Seule la méthode inputViewController est appelée et le clavier personnalisé s'affiche.

Quelqu'un peut-il m'aider à comprendre pourquoi inputViewController est appelé sur mon UIView's subclass même s'il ne devient pas le premier intervenant.

MISE À JOUR De la documentation de pomme -. « Une vue d'entrée est un substitut pour les claviers du système qui est attribué à la propriété inputView d'une vue de texte ou une vue personnalisée Quand il y a des vues d'entrée, UIKit peut échanger sur la clavier, même lorsqu'un objet texte est le premier répondeur, et il peut afficher une vue d'entrée semblable à celle du clavier au nom du développeur pour les objets non textuels. " Donc, si j'ai bien compris, il est logique que UIResponder appelle inputViewController sur ma sous-classe UIView, mais devrait idéalement avoir remplacé le clavier des champs de texte par inputViewController? Clairement, cela ne se passe pas ici.

+0

avez-vous trouvé une solution à ce problème? – aunindo

Répondre

0

Utilisez-vous une sous-classe UIView spécifiquement pour remplacer inputViewController? Vous pouvez essayer à la place de ne pas le faire, mais sous-classe UITextField à la place, puis surcharger inputViewController dans votre sous-classe UITextField.

+0

J'ai besoin de mon UIView pour devenir parfois premier répondeur et avoir son propre clavier personnalisé quand il devient le premier répondeur. Je ne peux pas y parvenir en sous-classant UITextfield. – user2990765