8000 GitHub - carabina/KAPinField: Lightweight Pin Code Field library for iOS, written in Swift
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

carabina/KAPinField

 
 

Repository files navigation

Language CocoaPods Compatible Carthage compatible Build Status Pod License

KAPinField

Lightweight pin code field library for iOS, written in Swift. This library also plays well with the all new iOS 12 one time password autofill.

Basic use iOS12 autofill

Install

With Cocoapods pod 'KAPinField'

Usage

import KAPinField

class MyController : UIVIewController {
  ...
}

Storyboard

You can add an UITextField directly in your Storyboard scene and declare it as KAPinField. It will automagically become a pin field. You can then customize it from the inspector view to suit your needs.

Delegation

Don't forget to set the delegate likeso :

@IBOutlet var pinField: KAPinField!

override func viewDidLoad() {
        super.viewDidLoad()
        pinField.pinDelegate = self
        ...
}

One simple method will be called on your delegate

extension MyController : KAPinFieldDelegate {
  func pinField(_ field: KAPinField, didFinishWith code: String) {
    print("didFinishWith : \(code)")
  }
}

Properties

pinField.token = "" // Default to "•"
pinField.numberOfCharacters = 5 // Default to 4
pinField.validCharacters = "0123456789+#?" // Default to only numbers, "0123456789"
pinField.pinText = "123" // You can set part or all of the pin text

Styling

You can use the native defaultTextAttributes to style KAPinField. It's highly recommended to use one of iOS monospaced fonts to avoid weird text offset while editting the field.

let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .center
let attributes : [NSAttributedString.Key : Any] = [
    .paragraphStyle : paragraph,
    .font : UIFont(name: "Menlo-Regular", size: 40)!,
    .kern : 14,
    .foregroundColor : UIColor.white]
pinField.defaultTextAttributes = attributes

Animation

KAPinField also provide some eye-candy for failure and success.

Success
field.animateSuccess(with: "👍") {
    print("Success")
}
Failure
field.animateFailure() {
   print("Failure")
}

About

Lightweight Pin Code Field library for iOS, written in Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 94.5%
  • Ruby 5.5%
0