iOS - заменить текст другой формой текста - PullRequest
0 голосов
/ 08 февраля 2012

Я создаю страницу входа для пользователей, и у меня есть UITextField для пользователей, чтобы ввести пароль.У меня также есть сводная страница в конце, которая возвращает информацию о пользователях, включая пароль.Я пытаюсь изменить пароль для отображения как «безопасный» или со звездочками вместо текста.Например:

passInput.text = @"password"
changed to: ********;

Я использую следующий код для выполнения задачи:

NSString *password = passInput.text;
NSRange range = NSMakeRange(0,passInput.text.length);
NSString *formattedPassword = [password stringByReplacingCharactersInRange:range withString:@"*"];
[sumPassword setText:newPassText];

Проблема в том, что он возвращает только одну звезду, а не 8 звезд, как мне кажетсядолжен.

Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Вы можете просто установить:

passInput.secureTextEntry = YES;

, чтобы при написании в этом поле отображались точки вместо букв.

В противном случае вы можете сделать это следующим образом:

NSUInteger length = passInput.text.length;
NSMutableString * str = [[NSMutableString alloc] init];

for (NSUInteger i = 0 ; i < length ; ++i) {
    [str appendString:@"*"];
}

или ...

NSUInteger length = passInput.text.length;
// Make this long enough
NSString * str = @"*********************************************************";
NSString * pass = [str substringToIndex:length];
1 голос
/ 08 февраля 2012

Полагаю, вам нужно указать столько *, сколько у вас есть символов в диапазоне, в противном случае он забирает весь этот диапазон и заменяет его данной строкой.Другими словами, вам придется изменить его на

NSString *formattedPassword = [password stringByReplacingCharactersInRange:range withString:@"********"];

для данного примера password = @"password";

...