一,工程结构,如下图所示:
二,代码
PassWordInputWindow.h
#import <UIKit/UIKit.h>@interface PasswordInputWindow : UIWindow+(PasswordInputWindow *)shareInstance;-(void)show;@end
PasswordInputWindow.m
#import "PasswordInputWindow.h"@implementation PasswordInputWindow{ UITextField *_textField;}+(PasswordInputWindow *)shareInstance{ 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 alloc] initWithFrame: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 makeKeyAndVisible]; self.hidden=NO;}-(void)completeButtonPressed:(id)sender{ if ([_textField.text isEqualToString:@"abcd"]) { [_textField resignFirstResponder]; [self resignFirstResponder]; self.hidden=YES; }else{ [self showErrorAlertView]; }}-(void)showErrorAlertView{ UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:nil message:@"密码错误,正确密码是abcd" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alertView show];}@end
三,运行效果。
参考资料 :
《iOS开发进阶》-唐巧
新闻热点
疑难解答