2017-08-16 4 views
0

Ich habe eine textField namens titleTextField in dem der Benutzer den Titel ihrer Wahl vor dem Speichern einer Notiz eingeben können. Ich möchte dieses Feld automatisch mit dem Text "Unbenannt" füllen, wenn der Benutzer dieses Feld leer gelassen hat.Benutzerdefinierten Text einstellen, wenn TextField leer ist

Ich habe mehrere Lösungen ausprobiert, aber sie entweder nichts tun oder den Titel immer auf Unbenannt setzen, auch wenn der Benutzer Text eingegeben hat.

Dies ist die nächste, die ich bekommen habe, aber es funktioniert immer noch nicht richtig:

if(![self.titleTextField.text isEqual:@""]){ 
    self.titleTextField.text = @"Untitled"; 
} 

Mein Gedanke war, dass dies zu prüfen, ob die titleTextField leer ist, und wenn ja, wäre es, das Feld füllen mit der Text "Ohne Titel" Ich habe versucht, dies in der viewDidLoad, viewWillAppear und viewWillDisappear - Ich bin es wirklich egal, ob der Text "Unbenannt" ist ausgefüllt, wenn der Bildschirm lädt oder nachdem der Benutzer mit der Seite fertig ist; Ich möchte nur, dass das Endergebnis ein leeres Titelfeld mit dem Text "Ohne Titel" ist.

Ist die Codierung falsch oder verwende ich sie nur an der falschen Stelle?

+1

Ihr Code wird das Textfeld Einstellung auf 'Untitled', wenn der aktuelle Text ist *nicht leer. – rmaddy

Antwort

1

Lösung gemäß der Art und Weise Sie suchen, ist:

if([self.titleTextField.text isEqualToString:@""]){ 
    self.titleTextField.text = @"Untitled"; 
} 

Sie können auch unten verwenden:

if([self.titleTextField.text length] == 0){ 
    self.titleTextField.text = @"Untitled"; 
} 
+0

'isEqual:' wird genauso gut funktionieren wie 'isEqualToString:'. – rmaddy

+0

Danke! Der zweite (mit dem Längenparameter) hat wie ein Zauber funktioniert! – unchainedprey

+0

Die zweite Option hat den Vorteil, dass sie auch funktioniert, wenn 'self.titleTextField.text'' nil' ist. – rmaddy

Verwandte Themen