2010-12-10 25 views
1

J'utilise une vue d'entrée personnalisée sur un UITextField en définissant sa propriété InputView; ça fonctionne très bien.Retour au clavier standard pour UITextField avec InputView personnalisé (monotouch)

Cependant, dans certaines conditions, je dois revenir à l'entrée clavier standard. Intuitivement, j'essaie de définir la propriété InputView sur null, mais cela ne fonctionne pas - une exception est levée.

En regardant la mise en œuvre UITextField.InputView, il commence comme ceci:

public void set_InputView(UIView value) 
{ 
    if (!value) 
    { 
    throw new ArgumentNullException(value); 
    } 
... 

Ainsi, il est évident que la mise en InputView null est no-go ...

Est-ce que quelqu'un sait comment il peut être terminé?

Merci

Répondre

2

Ce fut un bogue dans les liaisons, je l'ai fixe et la prochaine version acceptera nulle. En attendant vous pouvez le mettre à null avec une solution de contournement:

NSObject nil = new NSObject (IntPtr.Zero); 
this.InputView = nil; 
+0

Merci pour la réponse. Malheureusement, il ne compile pas: Erreur CS0266: Impossible de convertir implicitement le type 'MonoTouch.Foundation.NSObject 'en' MonoTouch.UIKit.UIView'. Si j'ajoute un cast explicite this.InputView = (UIView) nil - il compile, mais échoue au moment de l'exécution avec InvalidCastException :-( – Incidently

+0

Il semble que je l'ai eu en utilisant this.InputView = new UIView (IntPtr.Zero). – Incidently

+0

C'est une solution de contournement acceptable jusqu'à la prochaine version, c'est un peu un hack, mais juste en raison d'un style médiocre. –