Est-il possible de changer le InputView par défaut dans MonoTouch?
-
30-09-2019 - |
Question
Je voudrais afficher une vue différente de celle du clavier standard (un contrôle de sélecteur, ou un sélecteur de date, par exemple) lorsqu'un champ de texte devient le premier intervenant (à savoir obtient le focus). Ce serait vraiment bien, car actuellement je pousse une vue personnalisée qui contient mon contrôle de sélecteur sur la pile de navigation où l'utilisateur choisit une option, puis touche OK ou un bouton Annuler.
Selon la documentation UITextField.InputView :
Affectation d'une vue personnalisée à cette les causes de la propriété que vue à présenté à la place.
Mais, Il est en lecture seule !!!
Y at-il une solution de contournement pour cela? Ai-je besoin de mettre en œuvre un contrôle UITextField personnalisé et en quelque sorte remplacer la propriété InputView? Ai-je besoin d'appeler une sorte de fonction native? Je voudrais vraiment l'amour pas pour avoir à faire l'une de ces choses ... mais si je dois, soit. Merci à l'avance!
La solution
La documentation est un peu obsolète. Il y a un setter depuis MonoTouch 3.2.0.
Autres conseils
réponse Kevin travaillera pour les claviers UIKeyboardType mais pour autant que je sache (je peux me tromper) vous ne pouvez pas présenter un clavier personnalisé ainsi.
La seule façon que je sais comment présenter un clavier personnalisé est de remplacer le InputView pour le UIViewController
que vous souhaitez présenter le point de vue d'entrée.
UIView keyboardView;
public override UIView InputAccessoryView {
get
{
// create the view as you'd like here
return keyboardView;
}
}
le fil UITextField pour gérer l'événement d'édition approprié et dans le gestionnaire d'événements sélectionner le KeyboardType que vous voulez. Si vous ne avez pas besoin de définir dynamiquement alors vous pouvez simplement définir la propriété lorsque vous créez le champ de texte.
UITextField tf;
...
tf.KeyboardType = UIKeyboardType.PhonePad; // whatever kb you want