iPhone schränken Benutzer von der Eingabe von Leerzeichen im Textfeld ein

7

Ich möchte den Benutzer davon abhalten, den Raum in einem UITextField einzugeben. Dafür benutze ich diesen Code

%Vor%

aber es funktioniert nicht .... was ist daran falsch?

    
g.revolution 20.08.2009, 06:33
quelle

6 Antworten

10

Das Problem ist

%Vor%

ist falsch. Die Gleichheit für Zeichenfolgen erfolgt mit:

%Vor%

:).

    
kiyoshi 20.08.2009, 06:38
quelle
9

Dies wird suchen, um zu sehen, ob Ihre Ersetzungszeichenfolge ein Leerzeichen enthält. Wenn dies der Fall ist, wird die Fehlermeldung ausgegeben, wenn nicht, wird YES zurückgegeben.

%Vor%     
crackity_jones 20.08.2009 06:56
quelle
4

Die aktuelle Antwort lautet wie folgt:

Setzen Sie den View-Controller so, dass er dem UITextFieldDelegate entspricht (sollte etwa so aussehen wie oben in Ihrem Code):

%Vor%

Dann machen Sie das Textfeld den View-Controller als Delegat verwenden. Rufen Sie dazu den Interface Builder auf, klicken Sie auf das Textfeld und ziehen Sie eine Linie auf den gelben Kreis in der Leiste unterhalb des View-Controllers und wählen Sie im eingeblendeten Menü "delegieren". Sie können dies auch im Code tun, indem Sie den Delegierten festlegen, nachdem Sie die im nächsten Abschnitt beschriebene Eigenschaft erstellt haben. Mach es so mit self.yourTextField.delegate = self; an einem geeigneten Ort, möglicherweise in ViewDidLoad.

Setzen Sie das textField auch als Eigenschaft auf dem View Controller. Dazu gehen Sie zum Interface Builder, dessen Code im Assistenten geöffnet ist, und klicken und ziehen Sie aus dem Textfeld im Interface Builder an die Stelle im Code, an der die Eigenschaften aufgelistet sind (zwischen @interface und dem ersten) @Ende). Geben Sie dann einen Namen in das Popup-Fenster ein. Im folgenden Code habe ich beispielsweise "yourTextField" verwendet. (Sie können diesen Abschnitt zusammen mit der äußeren if-Schleife überspringen, wenn Sie sicher sind, dass dies das einzige Textfeld ist, das den View-Controller als seinen Delegaten verwendet, aber es ist am besten, für zukünftige Möglichkeiten vorauszuplanen)

Dann können Sie die Eingabe von Leerzeichen unter Verwendung der folgenden Delegate-Methode verbieten:

%Vor%     
narco 18.03.2014 22:23
quelle
2

Versuchen Sie es (setzen Sie dies in Ihrem - (BOOL) textField: (UITextField *) TextField sentChangeCharactersInRange: (NSRange) Bereich ErsetzungString: (NSString *) string):

%Vor%     
elslooo 20.08.2009 06:39
quelle
1
%Vor%

Wird das nicht nur die Adresse von string und @" " vergleichen? Das ist nicht der Vergleich, den Sie machen wollen.

Willst du auch verhindern, dass sie eine Zeichenfolge eingeben, die nur ein Leerzeichen ist? Wenn ja, dann müssen Sie das == in einen richtigen String-Vergleich ändern, und Sie sind gut zu gehen. Wenn nicht und Sie alle Leerzeichen in einer Eingabezeichenfolge verhindern möchten, benötigen Sie einen Zeichenfolgenanpasser

    
hhafez 20.08.2009 06:41
quelle
0

Im Folgenden verwende ich das Passwort und bestätige das Passwort

In PrefixHeader.pch file add unter

%Vor%

Und im Code unten verwenden.

%Vor%     
Fahim Parkar 16.04.2017 05:22
quelle