A lightweight, fully native IQKeyboardManager TurboModule for React Native (iOS only).
This module provides a clean API to enable or disable automatic keyboard management on iOS without depending on Expo — supports both New Architecture & Classic Bridge.
⚡ Built on top of IQKeyboardManager
📱 Native Objective-C++ implementation
🧠 Smart UI adjustments (no manual keyboard handling needed)
🚀 Plug-and-play: enable or disable at runtime
- Fully native TurboModule (New Architecture Ready)
- iOS-only (Android behaves normally, no crashes)
- Auto fixes:
- Keyboard covering inputs
- Smart scroll to focused input
- Next/Previous toolbar navigation
- Can enable/disable dynamically
- Zero UI changes required
npm install @shadahmad7/react-native-keyboard-manager
yarn add @shadahmad7/react-native-keyboard-manager
Add to your ios/Podfile:
pod 'IQKeyboardManager'Then run:
cd ios && pod install
import KeyboardManager, {
enableKeyboardManager,
disableKeyboardManager,
} from "@shadahmad7/react-native-keyboard-manager";
// Option 1: Use helper methods
enableKeyboardManager();
// Option 2: Disable later if needed
disableKeyboardManager();
// Option 3: Direct TurboModule access
KeyboardManager.enable();💡 Tip: You can disable for special screens (e.g., chat layouts or custom keyboards).
- Powered by IQKeyboardManager
- Fully configurable at runtime
- No additional setup within React Native code
- ❌ Not supported (module safely reports no-ops)
- Does not crash or break your app
Enables automatic keyboard handling.
KeyboardManager.enable();Disables automatic keyboard handling.
KeyboardManager.disable();enableKeyboardManager();
disableKeyboardManager();✔ Enable globally in App.tsx
✔ Disable for custom scrollable UI like chat or custom animated layouts
✔ Do not try to replicate UI manually if IQKeyboardManager is active
Example:
useEffect(() => {
enableKeyboardManager();
return disableKeyboardManager; // cleanup on unmount if needed
}, []);🔹 Does this work on Android?
No. Android handles keyboard differently. This package safely skips without crashing.
🔹 Will it conflict with custom keyboards?
If using custom animated layouts, disable temporarily.
🔹 Can I customize toolbar buttons & behavior?
Currently no — feature planned for future releases.
MIT © @shadahmad7