我有一个UITextfield
与输入密码SECURE
属性启用。
当用户点击外UITextfield
输入一定数目的字符后,然后再轻敲回UITextfield
进行编辑,以下行为正在发生:
的iOS 5.1 -当我尝试删除字符(使用backspace
从键盘从) UITextfield
,最后一个字符将被删除。
的iOS 6.0 -当我试图删除从一个字符UITextfield
,所有键入的字符越来越删除。
我是不是做错了什么,或者这是在iOS 6中的错误吗?
我有一个UITextfield
与输入密码SECURE
属性启用。
当用户点击外UITextfield
输入一定数目的字符后,然后再轻敲回UITextfield
进行编辑,以下行为正在发生:
的iOS 5.1 -当我尝试删除字符(使用backspace
从键盘从) UITextfield
,最后一个字符将被删除。
的iOS 6.0 -当我试图删除从一个字符UITextfield
,所有键入的字符越来越删除。
我是不是做错了什么,或者这是在iOS 6中的错误吗?
这是iOS6的下预期的行为,你不应该可能改变它。
如果因任何原因,你真的需要这一点,你可以重写UITextField
的委托方法textField:shouldChangeCharactersInRange:replacementString:
和恢复旧的行为:
#import "ViewController.h"
@interface ViewController () <UITextFieldDelegate>
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.passwordField.delegate = self;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (range.location > 0 && range.length == 1 && string.length == 0)
{
// iOS is trying to delete the entire string
textField.text = [textField.text substringToIndex:textField.text.length - 1];
return NO;
}
return YES;
}
@end
还有与iOS 6的W /关于这一新行为的问题。 试试这个:
中提琴! 你现在有没有在你的文本字段。 我能够重现这种始终如一的iOS对6.0.x和6.1
看起来这可以通过显式设置secureTextEntry在viewDidLoad中或左右,以不固定。
- (void)viewDidLoad {
[super viewDidLoad];
self.textField.secureTextEntry = NO;
}
这似乎与上述(与电子邮件字段并在其上一个安全的密码字段的图)描述的,iOS 6的下的情况下工作。
HTH!
这是一个方式,如果安全领域将是由退格被清除,以检测:
iOS 6中的UITextField安全-如何检测退格清除所有字符?