Ответ 1
Вы можете сделать это:
- Установите UITextField как обычный, а не секретный.
- Прослушать событие
UITextFieldTextDidChangeNotification
- Когда это произойдет, замените символы вашего текстового поля на "*" и сохраните реальный пароль в свойстве.
Этот код работает, он вроде уродливый, хотя, вероятно, он может быть оптимизирован.
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(keyPressed:) name: UITextFieldTextDidChangeNotification object: nil];
}
- (void) keyPressed: (NSNotification *) notification {
if(!self.password)
self.password = @"";
NSString* fieldText = [notification.object valueForKey:@"text"];
NSString* lastChar = [fieldText substringFromIndex:fieldText.length-1];
if(self.password.length>fieldText.length)
self.password = [self.password substringToIndex:self.password.length-1];
else
self.password = [NSString stringWithFormat:@"%@%@", self.password, lastChar];
NSString* secret = @"";
for (int l = 0; l<self.password.length; l++) {
secret = [secret stringByAppendingString:@"*"];
}
self.textField.text = secret;
}