Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

PIN Code Entry Screen for iOS

branch: master
README.md

Passcode view

Notice

I will not maintain this library any longer. Instead, I would suggest you look at this one — also written by me — that is much more modern, flexible, and easily integrated into apps. It departs a bit from the system passcode view so that it can be highly customized.

About

This project gives you a passcode control that can be dropped into any iOS app. It behaves exactly like the passcode screens that can be seen by going to Settings > General > Passcode Lock.

Features

  • Native iOS look and feel
  • Masks pin entry with bullet characters
  • Provide your own theme by using a custom nib file
  • Provide custom text to be displayed on the passcode entry view
  • Block-based passcode verification

Installation

  • Drag the "pinview" folder to your Xcode project (make sure "copy files", "create groups", and the appropriate target are selected)
  • Add the AudioToolbox framework to your target

Examples

Here are some quick examples. To see them in use, open the "SampleApp" Xcode project.

Create a new passcode

GCPINViewController *PIN = [[GCPINViewController alloc]
                            initWithNibName:nil
                            bundle:nil
                            mode:GCPINViewControllerModeCreate];
PIN.messageText = @"Create Passcode";
PIN.errorText = @"The passcodes do not match";
PIN.verifyBlock = ^(NSString *code) {
    NSLog(@"setting code: %@", code);
    return YES;
};
[PIN presentFromViewController:self animated:YES];
[PIN release];

Verify a passcode

GCPINViewController *PIN = [[GCPINViewController alloc]
                            initWithNibName:nil
                            bundle:nil
                            mode:GCPINViewControllerModeVerify];
PIN.messageText = @"Check Passcode";
PIN.errorText = @"Incorrect passcode";
PIN.verifyBlock = ^(NSString *code) {
    NSLog(@"checking code: %@", code);
    return [code isEqualToString:@"0187"];
};
[PIN presentFromViewController:self animated:YES];
[PIN release];
Something went wrong with that request. Please try again.