Latest 3.0.0.pre.1
Homepage https://github.com/T-Pham/UITextField-Navigation
License MIT
Platforms ios 8.0
Frameworks UIKit
Authors
'           __________________ _______          _________ _______ _________ _______  _        ______  
'  |     /|__   __/__   __/(  ____ |     /|__   __/(  ____ \__   __/(  ____ (       (  __   
'  | )   ( |   ) (      ) (   | (    /(    / )   ) (   | (    /   ) (   | (    /| (      | (    )
'  | |   | |   | |      | |   | (__      (_) /    | |   | (__       | |   | (__    | |      | |   ) |
'  | |   | |   | |      | |   |  __)     ) _ (     | |   |  __)      | |   |  __)   | |      | |   | |
'  | |   | |   | |      | |   | (       / ( )     | |   | (         | |   | (      | |      | |   ) |
'  | (___) |___) (___   | |   | (____/( /    )   | |   | )      ___) (___| (____/| (____/| (__/  )
'  (_______)_______/   )_(   (_______/|/     |   )_(   |/       _______/(_______/(_______/(______/ 
'                                                                                                     
'   _        _______          _________ _______  _______ __________________ _______  _                
'  ( (    /|(  ___  )|     /|__   __/(  ____ (  ___  )__   __/__   __/(  ___  )( (    /|         
'  |    ( || (   ) || )   ( |   ) (   | (    /| (   ) |   ) (      ) (   | (   ) ||    ( |         
'  |    | || (___) || |   | |   | |   | |      | (___) |   | |      | |   | |   | ||    | |         
'  | ( ) ||  ___  |( (   ) )   | |   | | ____ |  ___  |   | |      | |   | |   | || ( ) |         
'  | |    || (   ) |  _/ /    | |   | | _  )| (   ) |   | |      | |   | |   | || |    |         
'  | )    || )   ( |     /  ___) (___| (___) || )   ( |   | |   ___) (___| (___) || )    |         
'  |/    )_)|/     |   _/   _______/(_______)|/     |   )_(   _______/(_______)|/    )_)         
'                                                                                                     

CI Status
GitHub issues
Codecov
Documentation

GitHub release
Platform
License

Carthage

CocoaPods
CocoaPods downloads

Description

UITextField-Navigation adds next, previous and done buttons to the keyboard for your UITextFields and UITextViews. It allows you to specify a next field either on the Interface Builder or programmatically. Then, you can access next and previous fields of each UITextField or UITextView easily.

The UI is highly customizable.

To run the example project:

pod try UITextField-Navigation

Screenshot 0
Screenshot 1
Screenshot 2

Usage

Basic

You can set the nextNavigationField property for each UITextField and UITextView either on the Interface Builder or programmatically. The previousNavigationField property will be set on the other UITextField or UITextView automatically for you.

Example:

import UITextField_Navigation

...
let textField = UITextField()
let textView = UITextView()
textField.nextNavigationField = textView

assert(textView == textField.nextNavigationField)
assert(textField == textView.previousNavigationField)

Please note that the nextNavigationField and previousNavigationField properties are not retained.

Capturing taps

To capture taps on the next, previous and done buttons, assign a delegate to your NavigationField, which is a UITextField or UITextView, also either on the Interface Builder or programmatically. Then implement the NavigationFieldDelegate protocol (in addition to the UITextFieldDelegate or UITextViewDelegate protocol) for the delegate.
Please note that you have to explicitly declare that the delegate conforms to the NavigationFieldDelegate protocol to make it work.

Swift:

“`swift
import UIKit
import UITextField_Navigation


extension ViewController: NavigationFieldDelegate { // explicitly protocol conforming declaration

func navigationFieldDidTapPreviousButton(_ navigationField: NavigationField) {
navigationField.previousNavigationField?.becomeFirstResponder()
// your custom work
}

func navigationFieldDidTapNextButton(_ navigationField: NavigationField) {
navigationField.nextNavigationField?.becomeFirstResponder()
// your custom work
}

func navigationFieldDidTapDoneButton(_ navigationField: NavigationField) {
navigationField.resignFirstResponder()
// your custom work
}
}
“`

Objective-C:

“`objective-c
@import UITextField_Navigation;
#import “ViewController.h”

@interface ViewController () // explicitly protocol conforming declaration


#pragma mark – NavigationFieldDelegate

– (void)navigationFieldDidTapPreviousButton:(id)navigationField {
[navigationField.previousNavigationField becomeFirstResponder];
// your custom work
}

– (void)navigationFieldDidTapNextButton:(id)navigationField {
[navigationField.nextNavigationField becomeFirstResponder];
// your custom work
}

– (void)navigationFieldDidTapDoneButton:(id)navigationField {
[navigationField resignFirstResponder];
// your custom work
}
“`

UI Customization

Using UIAppearance

Modify the appearance proxy of the NavigationFieldToolbar and NavigationFieldToolbarButtonItem classes to customize the navigation view’s UI for all fields.

NavigationFieldToolbar.appearance().barStyle = .black
NavigationFieldToolbar.appearance().backgroundColor = UIColor.purple
NavigationFieldToolbarButtonItem.appearance().tintColor = UIColor.white

Screenshot 3

Directly and adding more buttons

Alternatively, you can directly modify the UI of each navigation view by accessing the navigationFieldToolbar property of a UITextField or UITextView.

...
navigationField.navigationFieldToolbar?.barStyle = .default
navigationField.navigationFieldToolbar?.backgroundColor = UIColor.red
navigationField.navigationFieldToolbar?.previousButton.title = "Previous"
navigationField.navigationFieldToolbar?.nextButton.title = "Next"
navigationField.navigationFieldToolbar?.doneButton.title = "Dismiss"

// Add a custom button
let customButton = UIBarButtonItem(title: "Custom", style: .plain, target: nil, action: nil)
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
navigationField.navigationFieldToolbar?.items = [navigationField.navigationFieldToolbar!.previousButton, navigationField.navigationFieldToolbar!.nextButton, customButton, flexibleSpace, navigationField.navigationFieldToolbar!.doneButton]

Screenshot 4

Installation

Carthage

Add the line below to your Cartfile:

github "T-Pham/UITextField-Navigation"

CocoaPods

Add the line below to your Podfile:

pod 'UITextField-Navigation'

Manually

  1. Download and drop /UITextField-Navigation/Classes folder in your project.
  2. Congratulations!

Compatibility

From version 2.0.0, Swift 3 syntax is used. If your project is still using Swift version 2, please use a UITextField-Navigation version prior to 2.0.0.

Podfile

pod 'UITextField-Navigation', '~> 1.4.3'

or Cartfile

github "T-Pham/UITextField-Navigation" ~> 1.4.3

Apps that use UITextField-Navigation

Hello fellow developers. I can see that the library has been adopted in some apps. If your app also uses the library, it would be great if you can share it here. Please add it to the list below. Thanks!

  1. Catder – Random animated cat photos
  2. Gradus – a Grade Calculator

License

UITextField-Navigation is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "UITextField-Navigation",
    "version": "3.0.0.pre.1",
    "summary": "UITextField-Navigation makes it easier to navigate between UITextFields and UITextViews.",
    "description": "UITextField-Navigation adds next, previous and done buttons to the keyboard for your UITextFields and UITextViews. It allows you to specify a next text field/view either on the Interface Builder or programmatically. Then, you can access next and previous text fields/views of each UITextField/UITextView easily.",
    "homepage": "https://github.com/T-Pham/UITextField-Navigation",
    "screenshots": [
        "https://github.com/T-Pham/UITextField-Navigation/blob/master/Screenshots/screenshot1.png?raw=true",
        "https://github.com/T-Pham/UITextField-Navigation/blob/master/Screenshots/screenshot2.gif?raw=true"
    ],
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Thanh Pham": "[email protected]"
    },
    "source": {
        "git": "https://github.com/T-Pham/UITextField-Navigation.git",
        "tag": "3.0.0.pre.1"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "UITextField-Navigation/Classes/**/*",
    "frameworks": "UIKit",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This