11
votes

Uitextfield max longueur maximale en C # avec xamarin.ios

Je voudrais définir une limite au nombre de caractères pouvant être entré dans un UITEXTFIELD dans une application iOS à 25 caractères.

Selon Ce message , il pourrait être fait dans l'objectif-c comme ceci: xxx

Comment puis-je faire exactement la même chose en C # avec xamarin.ios?


0 commentaires

5 Réponses :


32
votes

Ceci n'est pas testé, mais je crois que cela peut fonctionner: xxx


2 commentaires

pour un événement UITEXTVIEW devrait avoir travaillé avec le même code ci-dessus


Cela doit être au sommet de Google. Devait faire un peu de creuser. Merci Rolf.



2
votes

J'ai fini par le faire avec un délégué plutôt que de la notation de Lamba: xxx

mais je pense que le chemin de Rolf utilise Lambda est plus facile à lire.


0 commentaires

1
votes

C'est vraiment un moment car il a été répondu et c'est une bonne solution, mais elle peut être réalisée d'une manière différente en utilisant le notification code>. De cette façon, vous pouvez même ajouter un rappel et le faire fonctionner dans une classe séparée comme un petit composant.

Je l'ajoute ici au cas où cela pourrait aider quelqu'un d'autre. P>

NSNotificationCenter.DefaultCenter.AddObserver(
        UITextField.TextFieldTextDidChangeNotification, TextChangedEvent);

private void TextChangedEvent(NSNotification notification) {
    UITextField field = (UITextField)notification.Object;
    if (notification.Object == field) {             
        if (field.Text.Length >= 25) {
            field.Text = field.Text.Substring (0, 24);
        }
    }
}


0 commentaires

2
votes

Après 2 jours de travail avec cette question, j'ai découvert la solution pour elle par moi-même. Cela fonctionne avec un étui à copier / coller. J'espère que cela sera utile. XXX


1 commentaires

Fonctionne très bien. parfait.



1
votes

Ma solution utilise l'événement d'éditionChange:

_myUTextField.EditingChanged += (sender, e) =>{
   if (_myUTextField.Text.Length > maxLength){
      _myUTextField.Text = _myUTextField.Text.Substring(0, _myUTextField.Text.Length - 1);
   }
};


2 commentaires

Merci, cela fonctionne très bien, c'est utile lorsque vous avez besoin de DiPhankecharacters à un autre but.


Malheureusement, cette solution ne fonctionnera pas avec un contenu collé