在我的应用程序上,我需要这样做:当在TextView上键入一个字符以保存在NSString上,之后用'*'替换。我试过这个:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSLog(@"typing...");
text=@"*";
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
是NSString
,其中我要保存UITextView
上键盘引入的文字。
结果如下:http://i54.tinypic.com/2cx9ueo.png(这里我介绍了'我们',我看到了这个:'* w * e'。任何人都可以帮我解决这个问题吗?
我提到我必须使用UITextView
,而不是UITextField。
答案 0 :(得分:2)
我可以告诉你为什么你和*一起得到角色,虽然我不确定你的方法是否值得通过这个。
将您的返回语句设为NO,这将丢弃按下的新键。 YES现在将该字符放在程序化的'*'旁边。
答案 1 :(得分:1)
如果您希望立即更改,只需在方法中返回NO。如果你希望它有点延迟(即首先显示一个字符然后用*替换为密码字段),返回YES并从
运行另一种方法textView:shouldChangeTextInRange:replacementText:使用计时器在0.5秒后触发的方法(如果您愿意,可以使用其他数字)。
这个新方法可以用*。
替换最后添加的字符或更改的字符答案 2 :(得分:0)
查看this answer类似的问题。我相信你可以修改它以满足你的需求。