hackiftekhar / IQKeyboardManager
Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing hackiftekhar/IQKeyboardManager in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewIQKeyboardManager Objective-C version source code is moved to https://github.com/hackiftekhar/IQKeyboardManagerObjC Introduction While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the . allows you to prevent this issue of keyboard sliding up and covering without needing you to write any code or make any additional setup. To use you simply need to add source files to your project. Key Features • **One Line of Code** - Just enable and it works • **Works Automatically** - No manual setup required • **No More UIScrollView** - Automatically handles scroll views • **No More Subclasses** - Works with standard UIKit components • **No More Manual Work** - Handles all edge cases automatically • **Modular Architecture** - Include only what you need via subspecs What's Included • ✅ Automatic keyboard avoidance for UITextField/UITextView • ✅ Support for UIScrollView, UITableView, UICollectionView • ✅ All interface orientations • ✅ Configurable keyboard distance • ✅ Class-level enable/disable control Optional Features (via Subspecs) • 📦 Toolbar with Previous/Next/Done buttons • 📦 Return key handling customization • 📦 Tap-to-resign keyboard • 📦 Keyboard appearance configuration • 📦 UITextView with placeholder supportv Subspecs Now IQKeyboardManagerSwift uses a modular architecture with subspecs. By default, all subspecs are included, but you can include only what you need: Available Subspecs • **Core** (always included): Basic keyboard distance management • **Appearance**: Keyboard appearance configuration • **IQKeyboardReturnManager**: Return key handling • **IQKeyboardToolbarManager**: Toolbar functionality (Previous/Next/Done buttons) • **IQTextView**: UITextView with placeholder support • **Resign**: Tap-to-resign keyboard functionality Including Specific Subspecs Screenshot GIF animation Video Tutorial video by @rebeloper (#1135) @rebeloper demonstrated two videos on how to implement **IQKeyboardManager** at it's core: https://www.youtube.com/playlist?list=PL_csAAO9PQ8aTL87XnueOXi3RpWE2m_8v Warning • **If you're planning to build SDK/library/framework and want to handle UITextField/UITextView with IQKeyboardManager then you're totally going the wrong way.** I would never suggest to add **IQKeyboardManager** as **dependency/adding/shipping** with any third-party library. Instead of adding **IQKeyboardManager** you should implement your own solution to achieve same kind of results. **IQKeyboardManager** is totally designed for projects to help developers for their convenience, it's not designed for **adding/dependency/shipping** with any **third-party library**, because **doing this could block adoption by other developers for their projects as well (who are not using IQKeyboardManager and have implemented their custom solution to handle UITextField/UITextView in the project).** • If **IQKeyboardManager** conflicts with other **third-party library**, then it's **developer responsibility** to **enable/disable IQKeyboardManager** when **presenting/dismissing** third-party library UI. Third-party libraries are not responsible to handle IQKeyboardManager. Requirements | | Minimum iOS Target | Minimum Xcode Version | |------------------------|--------------------|-----------------------| | IQKeyboardManagerSwift | iOS 13.0 | Xcode 13 | | Demo Project | | Xcode 15 | Swift versions support | Swift | Xcode | IQKeyboardManagerSwift | |-------------------|-------|------------------------| | 5.9, 5.8, 5.7 | 16 | >= 7.0.0 | | 5.9, 5.8, 5.7, 5.6| 15 | >= 7.0.0 | | 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 4.2| 11 | >= 6.5.7 | | 5.1, 5.0, 4.2, 4.0, 3.2, 3.0| 11 | >= 6.5.0 | | 5.0,4.2, 4.0, 3.2, 3.0| 10.2 | >= 6.2.1 | | 4.2, 4.0, 3.2, 3.0| 10.0 | >= 6.0.4 | | 4.0, 3.2, 3.0 | 9.0 | 5.0.0 | Installation ========================== CocoaPods To install it, simply add the following line to your Podfile: (#236) *Or you can choose the version you need based on Swift support table from Requirements* Carthage To integrate or into your Xcode project using Carthage, add the following line to your : Run to build the frameworks and drag into your Xcode project based on your need. Make sure to add only one framework, not both. Swift Package Manager (SPM) To install package via Xcode • Go to File -> Swift Packages -> Add Package Dependency... • Then search for https://github.com/hackiftekhar/IQKeyboardManager.git • And choose the version you want Source Code ***IQKeyboardManagerSwift:*** Source code installation is not supported (since 7.2.0) because now the library depends on some other independent libraries. Due to this you may face compilation issues. Basic Usage Minimal Setup (Core Only) In , import and enable IQKeyboardManager: That's it! The keyboard will now automatically adjust to avoid covering text fields. With Toolbar (Requires IQKeyboardToolbarManager Subspec) With All Features Migration Guide ========================== • IQKeyboardManager 2.0.0 Migration Guide • IQKeyboardManager 3.0.0 Migration Guide • IQKeyboardManager 4.0.0 Migration Guide • IQKeyboardManager 5.0.0 Migration Guide • IQKeyboardManager 6.0.0 Migration Guide • IQKeyboardManager 7.0.0 Migration Guide • IQKeyboardManager 8.0.0 Migration Guide Other Links ========================== • Known Issues • Manual Management Tweaks • Properties and functions usage Dependency Diagram LICENSE --- Distributed under the MIT License. Contributions --- Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub. Author --- If you wish to contact me, email at: hack.iftekhar@gmail.com