更改UITextfield中的安全密码字符

时间:2010-07-19 10:03:53

标签: iphone iphone-sdk-3.0 uitextfield

是否可以更改显示的安全密码字符?

4 个答案:

答案 0 :(得分:9)

假设鲍比B是正确的,那就不可能改变秘密角色,
我在此提出,
没有任何保证和任何适用的警告,
因为这是一个可怕的kludge ,在某些时候肯定会让你头疼, 希望不要过分夸大它:

/* don't ever use this PROOF OF CONCEPT CODE for production use */
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{   
    if ( self.backing == nil ) self.backing = @"";
    static BOOL pasting = false;

    if ( !pasting )
    {       
        self.backing = [self.backing stringByReplacingCharactersInRange:range withString:string];
        NSLog(@"backing: %@",self.backing);
        if ( [string length] == 0 ) return YES; // early bail out when just deleting chars

        NSString *sec = @"";
        for ( int i=0;i<[string length]; i++ ) sec = [sec stringByAppendingFormat:@"■"];

        pasting = true;
        [[UIPasteboard generalPasteboard] setString:sec];
        [textField paste:self];

        return NO;  
    } else {
        pasting = false;
        return YES; 
    }       
}   
/* you have been warned */

UITextField的委托设置为包含此功能的类。

确保您self.backing保留NSString*。需要复制和粘贴kludge来保留光标位置。

我对粘贴一无所知,这是一个疯狂的猜测并且有效,但你确实需要找出这是否会导致这方面的问题。我测试了一点,它似乎没有任何问题。

答案 1 :(得分:8)

你也可以改变字体......

如果更改unicode字符'BULLET'(U + 2022),则可以自定义密码字符。 那里有很多免费的字体编辑器。 我用这个http://www.cr8software.net/typex.html

要向项目添加自定义字体,请查看 - this link

这很容易

然后你不必编写任何正常的代码。

答案 2 :(得分:0)

我不认为这是可能的,我的理由是UITextInputTraits文档中缺少文档(特别是secureTextEntry)。

虽然可能是错的 - 有兴趣听听有人之前做过这件事。

祝你好运!

答案 3 :(得分:0)

只需在IB中或通过程序允许安全属性。