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?
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%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% 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
Im Folgenden verwende ich das Passwort und bestätige das Passwort
In PrefixHeader.pch
file add unter
Und im Code unten verwenden.
%Vor%Tags und Links objective-c user-interface iphone uitextfield