2012-02-08 22 views
0

ユーザー用のログインページを作成しています。ユーザーにパスワードを入力するためのUITextFieldがあります。最後に、パスワードを含むユーザー情報を返す要約ページもあります。テキストの代わりに「安全」または星印で表示するようにパスワードを変更しようとしています。たとえば:iOS - テキストを別のテキスト形式に置き換えます。

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

の与えられた例えば

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

にそれを変更する必要がありますその分野で

そうでなければ、あなたはそれが好きで作ることができます:

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]; 
+0

これは私が必要としています。本当にありがとう! – Romes

1

範囲内の文字を持つものと同じくらい多くの*を与える必要があると仮定します。そうでなければ、その範囲全体を取り出し、指定された文字列に置き換えます。書くとき、それは文字の代わりにドットを示しているように

passInput.secureTextEntry = YES; 

:つまり、あなたはあなただけ設定することができpassword = @"password";

+0

をあなたは正確に正しい、しかし、どのようなユーザーであることは、例えば、異なる長さのパスワードを入力しますcat123。テキストをユーザーが入力した星の数で置き換えたいと思います。したがって、cat123は6つ星、パスワードは8つの星になります。理にかなっている? – Romes

+0

ええ、この問題を理解していますが、この文字列メソッドを使用して一般的な解決策で解決できるかどうかわかりません。 –

関連する問題