Skip to main content

Overview

Version 8.0 represents a major architectural shift where IQKeyboardManager has been split into smaller, focused libraries. This modular approach gives you more control over which features you include in your app.
Breaking Change: The toolbar feature (enableAutoToolbar) is now disabled by default and moved to a separate library.

Keyboard Toolbar Changes

The most significant change in v8 is that IQKeyboardManager.shared.enableAutoToolbar now defaults to false. The toolbar functionality has been moved to the IQKeyboardToolbarManager library.

Solution 1: Re-enable in IQKeyboardManager

If you want to keep using the toolbar with minimal changes:

Solution 2: Use IQKeyboardToolbarManager Directly

For better modularity and control, use the new dedicated library:

Features Moved to Independent Libraries

Many features have been extracted into their own libraries for better modularity:
Repository: IQKeyboardToolbarManagerHandles all toolbar-related functionality including Previous/Next/Done buttons.Installation:
Repository: IQKeyboardNotificationProvides keyboard notification handling and state tracking.Migration:
Repository: IQTextInputViewNotificationHandles text field and text view editing notifications.Migration:
Repository: IQKeyboardReturnManagerManages return key behavior for chaining text fields.Migration:
Repository: IQKeyboardToolbarProvides the toolbar UI component.Migration:
Repository: IQTextViewEnhanced UITextView with placeholder support.Migration: No code changes required, just add the separate library.

API Changes: IQKeyboardToolbarManager

If you’re using toolbar features, here are the key API migrations:

Properties Moved

UITextField/UITextView Extensions

API Changes: IQKeyboardToolbar

Classes and configuration types have been renamed:

Toolbar Extension Methods

Class Name Changes

IQPreviousNextView → IQDeepResponderContainerView

If you’re using IQPreviousNextView in Interface Builder, you must update both the class name and module.
1

Open Storyboard/XIB

Open your Interface Builder file
2

Select the View

Select the view that’s currently IQPreviousNextView
3

Update Class Name

In Identity Inspector, change class to IQDeepResponderContainerView
4

Update Module

Change module to IQKeyboardToolbarManager

CocoaPods Subspecs

For easier migration, IQKeyboardManager v8 provides subspecs that automatically include the extracted libraries:

Appearance Subspec

Keyboard appearance overriding has been moved to a subspec:

Resign Subspec

Resign on touch outside functionality moved to a subspec:

Migration Steps

1

Update Dependencies

Update your Podfile or Package.swift to version 8.0+
2

Install Dependencies

3

Enable Toolbar (if needed)

Add to your AppDelegate:
4

Update Interface Builder Files

Search for IQPreviousNextView in your storyboards/XIBs and update to:
  • Class: IQDeepResponderContainerView
  • Module: IQKeyboardToolbarManager
5

Update Toolbar API Usage

If using toolbar extensions, add .iq wrapper:
6

Update Class References

Replace renamed classes:
  • IQKeyboardListener → IQKeyboardNotification (different library)
  • IQTextFieldViewListener → IQTextInputViewNotification (different library)
  • IQReturnKeyHandler → IQKeyboardReturnManager (different library)
  • IQToolbar → IQKeyboardToolbar (different library)
  • IQToolbarConfiguration → IQKeyboardToolbarConfiguration
7

Build and Test

  • Build your project and fix any compilation errors
  • Test keyboard behavior thoroughly
  • Verify toolbar Previous/Next/Done buttons work
  • Test resign on touch outside if you use it

Benefits of v8 Architecture

Smaller Binary Size

Only include features you actually use, reducing app size

Better Modularity

Each feature is independently maintained and versioned

Faster Compilation

Smaller modules compile faster during development

Clearer Dependencies

Explicit dependencies make code more maintainable

Troubleshooting

Solution: Enable toolbar in AppDelegate:
Solution: Add the dependency to your package manager:
Solution: Change to IQDeepResponderContainerView with module IQKeyboardToolbarManager
Solution: Import the toolbar library and use .iq wrapper:

Need Help?

If you encounter issues during migration:
  1. Check the GitHub Issues
  2. Review the individual library documentation
  3. Create a new issue with your specific problem
Incremental Migration: If the migration seems overwhelming, consider using the CocoaPods subspecs which automatically include the extracted libraries as dependencies.