程序运行显示结果如下 :

验证密码输入错误显示如下:

代码如下 :

1>

//
//  PasswordInputWindow.m
//  UIWindow--密码框
//
//  Created by mac1 on 15/10/5.
//  Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//

#import "PasswordInputWindow.h"

@interface PasswordInputWindow  ()

@property (nonatomic,strong)UITextField *textField;

@end
@implementation PasswordInputWindow

static id instance = nil;

//单例方法创建对象
+ (PasswordInputWindow *)shareInstance
{
    //GCD实现单例
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,^{
      
       instance =[[self alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        
    });
    
    return instance;
}

- (id)initWithFrame:(CGRect)frame
{
    if (self == [super initWithFrame:frame]) {
        
        //创建Label
        UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(10, 50, 200, 20)];
        label.text=@"请输入密码";
        [self addSubview:label];
        
        
        //创建输入框
        _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 greenColor];
    }
    return self;
}

//显示
- (void)show
{
    
    //使窗口可显示
    [self makeKeyAndVisible];

//窗口不隐藏
    self.hidden=NO;
    
}

//密码错误调用的方法
-(void)showErrorAlertView
{
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"输入密码错误" message:@"密码输入错误" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定",nil];
    
    [alertView show];
    
}

//"确定"按钮触发的方法
- (void)completeButtonPressed:(id)sender{
    if ([_textField.text isEqualToString:@"abcd"]) {
        
        //键盘失去第一响应
        [_textField resignFirstResponder];
        //窗口为第一响应者
        [self resignFirstResponder];
        self.hidden=YES;
    }else{
        
        [self showErrorAlertView];
    }
}
@end

2>

外部控制器调用 :

//
//  ViewController.m
//  UIWindow--密码框
//
//  Created by mac1 on 15/10/5.
//  Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//

#import "ViewController.h"
#import "PasswordInputWindow.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
   
    //单例创建对象
    PasswordInputWindow *passView = [PasswordInputWindow shareInstance];

//让窗口显示
    [passView show];
        
}
@end

UIwindow ---密码框的更多相关文章

  1. jquery更改输入框type为密码框password

    很蛋疼的一个问题: <input type="text" id="e1" value="123" /> 用juqery将文本框变 ...

  2. 模拟placeholder支持ie8以下处理了密码框只读的问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. jq实现 禁止对密码框中的内容进行复制、剪切和粘贴操作

    $(function () { $("input:password").on("copy cut paste", function (e) { return f ...

  4. 表单form的属性,单行文本框、密码框、单选多选按钮

    基础表单结构: <body> <h1> <hr /> <form action="" name="myFrom" en ...

  5. WPF文本框密码框添加水印效果

    WPF文本框密码框添加水印效果 来源: 阅读:559 时间:2014-12-31 分享: 0 按照惯例,先看下效果 文本框水印 文本框水印相对简单,不需要重写模板,仅仅需要一个VisualBrush ...

  6. [Asp.net]说说密码框和只读框

    作者:Wolfy出处:http://www.cnblogs.com/wolf-sun/ 引言 最近负责了一个公司的小项目,从前台到后代,都是自己搞的,为一个客户弄一个信息管理的小系统,虽然对界面什么的 ...

  7. JAVA 文本框、密码框、标签

    //文本框,密码框,标签 import java.awt.*; import javax.swing.*; public class Jiemian5 extends JFrame{ JPanel m ...

  8. Qt之密码框不可选中、复制、粘贴、无右键菜单等

    简述 在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同,例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 下面介绍两种方式来实现相同的效果. ...

  9. WPF 之 文本框及密码框添加水印效果

    1.文本框添加水印效果 文本框水印相对简单,不需要重写模板,仅仅需要一个 VisualBrush 和触发器验证一下Text是否为空即可. <TextBox Name="txtSerac ...

随机推荐

  1. Java中String、StringBuffer、StringBuilder、StringTokenizer的区别

    Java语言中,有4个类可以对字符或字符串进行操作,它们是Character.String.StringBuffer.StringTokenizer,其中Character用于单个字符操作,Strin ...

  2. Spring源码窥探之:Spring AOP初步

    AOP(Aspect Oriented Programming):即我们常说的面向切面编程. 什么是AOP?AOP是在我们原来写的代码的基础上,进行一定的包装,比如在方法执行前.方法返回后.方法抛出异 ...

  3. TCL服务器端

    import socket def main(): # 创建套接字对象 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STR ...

  4. mysql对子查询的优化改写

    重庆SEO:<高性能mysql第三版>提到mysql会将in子查询改写成exists查询(书中基于的mysql版本是5.1.50和5.5) 但是在5.6之后,已经优化成使用半连接查询 SE ...

  5. celery timeout的拦截

    0X01 场景 celery任务超时报错,想查看是传入哪一类数据运行时导致的超时(哪一个插件),但是该报错难以拦截. [2019-06-30 17:23:21,070: ERROR/MainProce ...

  6. Vue Router 使用方法

    安装 直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js Unpkg.com 提供了基于 NPM 的 CDN 链接.上面的链接会一直指 ...

  7. 【排序算法】冒泡排序(Bubble Sort)

    一.简介 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换, ...

  8. 【中国剩余定理-入门】-C++

    中国剩余定理也称孙子定理,是中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理. 这玩意在luogu居然有模板题: [TJOI2009]猜数字 先来看一个问题: 在<孙子算经> ...

  9. Linux操作系统常用命令合集——第五篇-磁盘和文件系统操作(15个命令)

    1.fdisk [命令作用] 用于观察硬盘实体使用情况.也可以对硬盘分区. 对于一块硬盘来讲,最多只能管理15个分区 [命令语法]  fidisk    [选项]    [参数] [常用选项] -b& ...

  10. 物聯網安全黑客松 IoT Security and Privacy Hackathon

    感覺這次黑客松的程度屬於初階,但是節奏很快,內容緊湊.概念部分解說較多,以致實驗時間縮短,有些只能看demo有點遺憾.幸好有video-taped,事後回溯可以看看能不能replicate實驗.總體而 ...