2011-10-12 107 views
2

在我的應用程序中,我需要這樣做:在TextView上鍵入一個字符以保存在NSString上,然後用'*'替換。我嘗試這樣做:用UITextView上的其他字符替換給定的字符串

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    NSLog(@"typing..."); 
    [email protected]"*"; 
    passwordText=textView.text; 
    NSLog(@"password %@",passwordText); 

    NSString* nextText = [textView.text stringByReplacingCharactersInRange:range withString:text]; 
    textView.text=nextText; 
    NSLog(@"next %@",nextText); 
    NSLog(@"textview.text %@",textView.text); 

    return YES; 
} 

其中passwordText是,我要保存文本從鍵盤上介紹的UITextViewNSString

結果是這樣的:http://i54.tinypic.com/2cx9ueo.png(這裏我介紹了「我們」,我看到這樣的:?「* W * E」誰能幫我解決這個

我提,我必須使用UITextView做到這一點,而不是的UITextField。

回答

2

我可以告訴你爲什麼你與*相處的性格,雖然我是不知道你的方法是否值得通過這個。

使您的返回語句爲NO,這將丟棄按下的新鍵。 YES現在將該字符放在程序化的「*」旁邊。

0

this answer到類似的問題。我敢肯定,你可以修改它以滿足您的需求。

+0

我以前見過這個答案,但它沒有幫助我 – Gabrielle

1

如果您希望更改立即生效,只需在方法中返回NO。如果你希望它稍微延遲一點(即先顯示一個字符,然後用*代替密碼字段中的內容),返回YES並運行另一個方法textView:shouldChangeTextInRange:replacementText:要在0.5之後觸發的方法秒(或其他數字,如果你喜歡)使用計時器。

這種新方法可以用*替換上次添加的字符或更改後的字符。

相關問題