• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

UITextField sercureTextEntry

nelfisch

Carola
Registriert
15.03.08
Beiträge
108
Hallo Leute,

ich habe in meiner App in den Preferences ein TextField, in das der User sein Passwort eintragen soll, damit die App sich automatisch in meinem Web-Dienst einloggen kann. Speichern und so klappt, bei der Eingabe direkt werden auch diese lustigen Punkte angezeigt, wenn ich das Einstellungsfenster jedoch verlasse und dann zurück kehre ( also die Werte aus den NSUserDefaults geladen werden und als placeholder der UITextFields gesetzt werden) funktioniert das leider nicht so, sprich der Text steht "plain", also ohne Punkte da...Gibt es da Abhilfe oder ist das ein hoffnungsloses Unterfangen?
Hier mal der Code, der das so abfragt:
Code:
//setting up accessoryView
	UITextField* classField = [[UITextField alloc] initWithFrame:CGRectMake(25.0f, 8.0f,  100.0f, 28.0f)];
	classField.userInteractionEnabled = YES;
	NSString* prefString = [NSString stringWithFormat:@"%@State",aString];
	if([prefs objectForKey:prefString] == nil){
		classField.placeholder = aString;
	}else{
		if([aString isEqualToString:@"Passwort"]){
			classField.secureTextEntry = YES;
		}
		classField.placeholder = [NSString stringWithFormat:@" %@", [prefs objectForKey:prefString]];
		
	}
 
Hier ein Link zu einem Beispielprogramm:

UICatalog

nebenbei würde ich sagen, dass ein Placeholder immer im Klartext da steht, also diese Zeile:

Code:
classField.placeholder = [NSString stringWithFormat:@" %@", [prefs objectForKey:prefString]];

dein Passwort direkt als Placeholder reinschreibt, und das willst du wohl nicht :) Mit diesem Wissen musst du dir das Beispielprojekt auch nicht mehr ansehen. Da steht nur die eine Zeile, dasselbe wie du auch machst (secureTextEntry).

Gruss ppocket
 
Danke, habe das jetzt so geregelt, dass ich die in den Prefs bereits vorhandenen Werte einfach über
Code:
[textField setText:...];
gesetzt habe, dann halt mit
Code:
textField.secureTextEntry = YES;
. Mit .placeholder wäre es zwar optisch schöner gewesen, aber ist mir dann jetzt auch egal, die Punkt gehen vor. Danke poljipocket
 
Pass doch
Code:
@property(nonatomic, retain) UIFont *font
@property(nonatomic, retain) UIColor *textColor

vom Textfeld an, wenn es dir optisch nicht gefällt.