天天看点

UIWindow的基本使用,一进入界面需输入密码

#import <UIKit/UIKit.h>

@interface PasswordInputWindow : UIWindow

+(PasswordInputWindow *)sharedInstance;

- (void)show;

@end

#import "PasswordInputWindow.h"

@implementation PasswordInputWindow

{

    UITextField *_textField;

}

+ (PasswordInputWindow *)sharedInstance

{

    static id shareInstance = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        shareInstance = [[self alloc]initWithFrame:[UIScreen mainScreen].bounds];

    });

    return shareInstance;

}

-(id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 200, 20)];

        label.text = @"请输入密码";

        [self addSubview:label];

        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 80, 200, 20)];

        textField.backgroundColor = [UIColor whiteColor];

        textField.secureTextEntry = YES;

        [self addSubview:textField];

        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

        button.frame = CGRectMake(10, 110, 200, 44);

        [button setBackgroundColor:[UIColor blueColor]];

        button.titleLabel.textColor = [UIColor blackColor];

        [button setTitle:@"确定" forState:UIControlStateNormal];

        [button addTarget:self action:@selector(completeButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

        [self addSubview:button];

        self.backgroundColor = [UIColor yellowColor];

        _textField = textField;

    }

    return self;

}

- (void)show

{

    [self makeKeyWindow];

    self.hidden = NO;

}

- (void)completeButtonPressed:(id)sender

{

    if ([_textField.text isEqualToString:@"111"]) {

        [_textField resignFirstResponder];

        self.hidden = YES;

        _textField.text = nil;

    }else{

        [self showErrorAlertView];

    }

}

- (void)showErrorAlertView

{

    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"密码错误" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

    [alertView show];

}