To run the example project, clone the repo, and run pod install from the Example directory first.
IQKeyboardToolbarManager is available through Swift Package Manager.
Requirements: iOS 13.0+, Swift 5.7+
- In Xcode, go to
File→Add Package Dependencies... - Enter the repository URL:
https://github.com/hackiftekhar/IQKeyboardToolbarManager - Select the version rule (e.g., "Up to Next Major Version")
- Click
Add Package - Select the
IQKeyboardToolbarManagerlibrary and clickAdd Package
Add the following dependency to your Package.swift file:
dependencies: [
.package(url: "https://github.com/hackiftekhar/IQKeyboardToolbarManager", from: "1.1.3")
]Then add IQKeyboardToolbarManager to your target dependencies:
.target(
name: "YourTarget",
dependencies: ["IQKeyboardToolbarManager"]
)IQKeyboardToolbarManager is also available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'IQKeyboardToolbarManager'Add the following line to your Cartfile:
github "hackiftekhar/IQKeyboardToolbarManager"
After adding IQKeyboardToolbarManager to your project, import it and enable toolbar handling in AppDelegate:
import UIKit
import IQKeyboardToolbarManager
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
IQKeyboardToolbarManager.shared.isEnabled = true
return true
}
Cuistomize Behavior
IQKeyboardToolbarManager.shared.toolbarConfiguration.useTextInputViewTintColor = true
IQKeyboardToolbarManager.shared.toolbarConfiguration.tintColor = UIColor.systemGreen
IQKeyboardToolbarManager.shared.toolbarConfiguration.barTintColor = UIColor.systemYellow
IQKeyboardToolbarManager.shared.toolbarConfiguration.previousNextDisplayMode = .alwaysShow
IQKeyboardToolbarManager.shared.toolbarConfiguration.manageBehavior = .byPosition
IQKeyboardToolbarManager.shared.toolbarConfiguration.previousBarButtonConfiguration = ... // BarButton configuration to change title, image or system image etc
IQKeyboardToolbarManager.shared.toolbarConfiguration.nextBarButtonConfiguration = ... // BarButton configuration to change title, image or system image etc
IQKeyboardToolbarManager.shared.toolbarConfiguration.doneBarButtonConfiguration = ... // BarButton configuration to change title, image or system image etc
IQKeyboardToolbarManager.shared.toolbarConfiguration.placeholderConfiguration.showPlaceholder = false
IQKeyboardToolbarManager.shared.toolbarConfiguration.placeholderConfiguration.font = UIFont.italicSystemFont(ofSize: 14)
IQKeyboardToolbarManager.shared.toolbarConfiguration.placeholderConfiguration.color = UIColor.systemPurple
IQKeyboardToolbarManager.shared.toolbarConfiguration.placeholderConfiguration.buttonColor = UIColor.systemBrown // This is used only if placeholder is an action button
IQKeyboardToolbarManager.shared.playInputClicks = false
IQKeyboardToolbarManager.shared.disabledToolbarClasses.append(ChatViewController.self)
IQKeyboardToolbarManager.shared.enabledToolbarClasses.append(LoginViewController.self)
IQKeyboardToolbarManager.shared.deepResponderAllowedContainerClasses.append(UIStackView.self)Useful functions and variables
if IQKeyboardToolbarManager.shared.canGoPrevious {
...
}
if IQKeyboardToolbarManager.shared.canGoNext {
...
}
IQKeyboardToolbarManager.shared.goPrevious()
IQKeyboardToolbarManager.shared.goNext()
IQKeyboardToolbarManager.shared.reloadInputViews() // If some textInputView hierarchy are changed on the fly then use this to reload button statesUseful functions and variables for TextInputView
textField.iq.ignoreSwitchingByNextPrevious = falseIftekhar Qurashi [email protected]
IQKeyboardToolbarManager is available under the MIT license. See the LICENSE file for more info.
