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.
avez-vous trouvé une solution à ce problème? – aunindo