zoukankan      html  css  js  c++  java
  • 【读书笔记】iOS-UIWindow-密码框

    一,工程结构,如下图所示:

     

     

    二,代码

    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开发进阶》-唐巧 

  • 相关阅读:
    c#中using System.Runtime.Serialization.Json;不能引用
    VS2013 当前不会命中断点还未为文档加载任何符号
    windows2008 设置会话超时时间
    服务没有及时响应启动或控制请求 1053
    IIS装好了无法访问localhost
    Shiro笔记——简介、 架构分析
    Java 连接使用 Redis
    Java 连接操作 Redis 出现错误
    网络方面的常用命令 & 常用端口介绍
    Redis 配置文件及命令详解
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/4684099.html
Copyright © 2011-2022 走看看