Как создать пароль для просмотра iphone - PullRequest
2 голосов
/ 25 декабря 2010


Я хочу добавить блокировку пароля в мое приложение ...
Я создал вид, но не знаю, как заставить его работать ...

Вот что я хотел бы сделать:
- Если пользователь устанавливает свой пароль, он должен ввести его дважды, и код должен проверить, совпадает ли пароль, введенный во второй раз, с первым.
- Если контроллер пароля вызывается с помощью представления настроек, например, для установки пароля, он должен иметь кнопку отмены на панели навигации, но если он вызывается при запуске приложения, кнопка отмены не должна быть включена.

summaryLabel - это метка, которая показывает сообщение типа «Пароль не совпадает. Попробуйте еще раз». когда пароль не совпадает с тем, который был написан ранее или сохранен.

EDIT1: Как я могу использовать метод textField: shouldChangeCharactersInRange: replaceString для этого?

Это код:

#import "PasscodeController.h"</p>

<p>@implementation PasscodeController</p>

<p>@synthesize panelView;
@synthesize summaryLabel;
@synthesize titleLabel;
@synthesize textField1;
@synthesize textField2;
@synthesize textField3;
@synthesize textField4;
@synthesize hiddenTF;</p>

<p>-(void)viewDidLoad {
self.title = @"Passcode"; 
self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(25, 22, 270, 30)];
titleLabel.font = [UIFont boldSystemFontOfSize:15];
titleLabel.textAlignment = UITextAlignmentCenter;
titleLabel.textColor = [UIColor colorWithRed:66.0/255.0 green:85.0/255.0 blue:102.0/255.0 alpha:1.0];
titleLabel.backgroundColor = [UIColor clearColor];
[self.view addSubview:titleLabel];
[titleLabel release];</p>

<p>summaryLabel = [[UILabel alloc] initWithFrame:CGRectMake(25, 130, 270, 40)];
summaryLabel.font = [UIFont boldSystemFontOfSize:12];
summaryLabel.numberOfLines = 0;
summaryLabel.baselineAdjustment = UIBaselineAdjustmentNone;
summaryLabel.textAlignment = UITextAlignmentCenter;
summaryLabel.textColor = [UIColor colorWithRed:66.0/255.0 green:85.0/255.0 blue:102.0/255.0 alpha:1.0];
summaryLabel.backgroundColor = [UIColor clearColor];
[self.view addSubview:summaryLabel];
[summaryLabel release];</p>

<p>textField1 = [[UITextField alloc] initWithFrame:CGRectMake(25, 60, 60, 60)];
textField1.borderStyle = UITextBorderStyleBezel;
textField1.textColor = [UIColor blackColor];
textField1.textAlignment = UITextAlignmentCenter;
textField1.font = [UIFont systemFontOfSize:41];
textField1.secureTextEntry = YES;
textField1.backgroundColor = [UIColor whiteColor];
textField1.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:textField1];
[textField1 release];</p>

<p>textField2 = [[UITextField alloc] initWithFrame:CGRectMake(95, 60, 60, 60)];
textField2.borderStyle = UITextBorderStyleBezel;
textField2.textColor = [UIColor blackColor];
textField2.textAlignment = UITextAlignmentCenter;
textField2.font = [UIFont systemFontOfSize:41];
textField2.secureTextEntry = YES;
textField2.backgroundColor = [UIColor whiteColor];
textField2.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:textField2];
[textField2 release];</p>

<p>textField3 = [[UITextField alloc] initWithFrame:CGRectMake(165, 60, 60, 60)];
textField3.borderStyle = UITextBorderStyleBezel;
textField3.textColor = [UIColor blackColor];
textField3.textAlignment = UITextAlignmentCenter;
textField3.font = [UIFont systemFontOfSize:41];
textField3.secureTextEntry = YES;
textField3.backgroundColor = [UIColor whiteColor];
textField3.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:textField3];
[textField3 release];</p>

<p>textField4 = [[UITextField alloc] initWithFrame:CGRectMake(235, 60, 60, 60)];
textField4.borderStyle = UITextBorderStyleBezel;
textField4.textColor = [UIColor blackColor];
textField4.textAlignment = UITextAlignmentCenter;
textField4.font = [UIFont systemFontOfSize:41];
textField4.secureTextEntry = YES;
textField4.backgroundColor = [UIColor whiteColor];
textField4.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:textField4];
[textField4 release];</p>

<p>hiddenTF = [[UITextField alloc] initWithFrame:CGRectZero];
hiddenTF.hidden = YES;
hiddenTF.delegate = self;
hiddenTF.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:hiddenTF];
[hiddenTF release];
[hiddenTF becomeFirstResponder];
}

Большое спасибо!

Ответы [ 3 ]

4 голосов
/ 18 марта 2011

Другое решение, KVPasscodeViewController (мое), доступно здесь: https://github.com/Koolistov/Passcode (лицензия BSD).

3 голосов
/ 25 декабря 2010

Если это может быть полезно для других, я решил свою проблему с этим исходным кодом на GitHub: PTPasscodeViewController .
Я немного изменил его, чтобы адаптировать его к моим потребностям, и теперь очень хорошо работает:)

Если вы хотите его использовать, вся информация о том, как его использовать, находится на странице проекта или в файле, если вы его загрузили;)

Надеюсь, эта помощь!

PS: Спасибо Лаше Долидзе за предоставленный код!

2 голосов
/ 02 мая 2011
...