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.

Overview

Icon

IQKeyboardManager

GitHub license

Build Status

While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the UITextField/UITextView. IQKeyboardManager allows you to prevent this issue of keyboard sliding up and covering UITextField/UITextView without needing you to write any code or make any additional setup. To use IQKeyboardManager you simply need to add source files to your project.

Key Features

  1. **CODELESS**, Zero Lines of Code

  2. Works Automatically

  3. No More UIScrollView

  4. No More Subclasses

  5. No More Manual Work

  6. No More #imports

IQKeyboardManager works on all orientations, and with the toolbar. It also has nice optional features allowing you to customize the distance from the text field, behaviour of previous, next and done buttons in the keyboard toolbar, play sound when the user navigates through the form and more.

Screenshot

IQKeyboardManager Settings

GIF animation

IQKeyboardManager

Video

IQKeyboardManager Demo Video

Tutorial video by @rebeloper (#1135)

@rebeloper demonstrated two videos on how to implement IQKeyboardManager at it's core:

Youtube Tutorial Playlist

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

Platform iOS

Language Minimum iOS Target Minimum Xcode Version
IQKeyboardManager Obj-C iOS 8.0 Xcode 9
IQKeyboardManagerSwift Swift iOS 8.0 Xcode 9
Demo Project Xcode 11

Swift versions support

Swift Xcode IQKeyboardManagerSwift
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

Installation with CocoaPods

CocoaPods

IQKeyboardManager (Objective-C): IQKeyboardManager is available through CocoaPods. To install it, simply add the following line to your Podfile: (#9)

pod 'IQKeyboardManager' #iOS8 and later

IQKeyboardManager (Swift): IQKeyboardManagerSwift is available through CocoaPods. To install it, simply add the following line to your Podfile: (#236)

Swift 5.1, 5.0, 4.2, 4.0, 3.2, 3.0 (Xcode 11)

pod 'IQKeyboardManagerSwift'

Or you can choose the version you need based on Swift support table from Requirements

pod 'IQKeyboardManagerSwift', '6.3.0'

In AppDelegate.swift, just import IQKeyboardManagerSwift framework and enable IQKeyboardManager.

import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

      IQKeyboardManager.shared.enable = true

      return true
    }
}

Installation with Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate IQKeyboardManger or IQKeyboardManagerSwift into your Xcode project using Carthage, add the following line to your Cartfile:

github "hackiftekhar/IQKeyboardManager"

Run carthage to build the frameworks and drag the appropriate framework (IQKeyboardManager.framework or IQKeyboardManagerSwift.framework) into your Xcode project based on your need. Make sure to add only one framework and not both.

Installation with Source Code

Github tag

IQKeyboardManager (Objective-C): Just drag and drop IQKeyboardManager directory from demo project to your project. That's it.

IQKeyboardManager (Swift): Drag and drop IQKeyboardManagerSwift directory from demo project to your project

In AppDelegate.swift, just enable IQKeyboardManager.

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

      IQKeyboardManager.shared.enable = true

      return true
    }
}

Installation with Swift Package Manager

Swift Package Manager(SPM) is Apple's dependency manager tool. It is now supported in Xcode 11. So it can be used in all appleOS types of projects. It can be used alongside other tools like CocoaPods and Carthage as well.

To install IQKeyboardManager package into your packages, add a reference to IQKeyboardManager and a targeting release version in the dependencies section in Package.swift file:

import PackageDescription

let package = Package(
    name: "YOUR_PROJECT_NAME",
    products: [],
    dependencies: [
        .package(url: "https://github.com/hackiftekhar/IQKeyboardManager.git", from: "6.5.0")
    ]
)

To install IQKeyboardManager package via Xcode

Migration Guide

Other Links

Flow Diagram

IQKeyboardManager CFD

If you would like to see detailed Flow diagram then check Detailed Flow 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: [email protected]

Comments
  • Layout constraint problem, Xcode 11 and iOS 13

    Layout constraint problem, Xcode 11 and iOS 13

    Describe the bug Getting a layout constraint error now that I have upgraded to Xcode 11 and iOS 13 on a real device. Selecting a UITextfield that has "secure text entry" enabled causes the following error:

    [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x281b94b90 'accessoryView.bottom' _UIRemoteKeyboardPlaceholderView:0x104ffa200.bottom == _UIKBCompatInputView:0x108707890.top (active)>", "<NSLayoutConstraint:0x281b7f840 'assistantHeight' TUISystemInputAssistantView:0x108531590.height == 45 (active)>", "<NSLayoutConstraint:0x281b919a0 'assistantView.bottom' TUISystemInputAssistantView:0x108531590.bottom == _UIKBCompatInputView:0x108707890.top (active)>", "<NSLayoutConstraint:0x281b91680 'assistantView.top' V:[_UIRemoteKeyboardPlaceholderView:0x104ffa200]-(0)-[TUISystemInputAssistantView:0x108531590] (active)>" )

    Will attempt to recover by breaking constraint <NSLayoutConstraint:0x281b91680 'assistantView.top' V:[_UIRemoteKeyboardPlaceholderView:0x104ffa200]-(0)-[TUISystemInputAssistantView:0x108531590] (active)>

    Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

    Expected behavior No constraint issues.

    Versions

    Xcode: Version 11.0 (11A420a) Mac OS: 10.15 Beta (19A573a) Simulator/Device: iOS 13.1 Simulator/Device Name: iPhone X Library Version: 6.5.0

    opened by JeffersonSchuler 38
  • textFieldShouldBeginEditing called multiple times

    textFieldShouldBeginEditing called multiple times

    This method is calling multiple times if I disable Toolbar, it will not call multiple times, but I want your toolbar.

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    
    return YES;
    
    }
    

    in my App, i have a Country text field where I don't want the user to type so when user tap on that text field it should open my popup or modal .. so any workaround?

    Bug Question 
    opened by hardikdevios 36
  • Scroll not returning to origin, leaving more & more blank space at top

    Scroll not returning to origin, leaving more & more blank space at top

    giphy

    I'm not sure if this is Xcode9 or iOS 11 but I just noticed that on this app when the view scrolls up with the keyboard appearing, it isn't returning to the original position after the keyboard is dismissed. It actually is moved down slightly each time. You'll see in the gif above, the space at top keeps expanding. This view doesn't have any other scrollviews, just IQKeyboardManager through cocoa pods with latest version as 'IQKeyboardManagerSwift', ‘4.0.12’.

    opened by Alba-C 31
  • Incorrect Scrolling on iOS 11

    Incorrect Scrolling on iOS 11

    on ios 11 the scrolling for the attached example is incorrect, the navigation bar ends up off the top of the screen, once the keyboard is dismissed a big gap is left at the top of the screen between the image view and the navigation controller

    i am using IQKeyboardManagerSwift 4.0.13 installed via cocoapods

    Storyboard View

    screen shot 2017-09-20 at 14 42 26

    Initial View

    simulator screen shot - iphone se - 2017-09-20 at 14 41 00

    Keyboard Shown

    simulator screen shot - iphone se - 2017-09-20 at 14 37 49

    Keyboard Dismissed

    simulator screen shot - iphone se - 2017-09-20 at 14 38 41

    opened by uddinr 27
  • UITextField autoscroll to just above keyboard, even if textfield is fully visible

    UITextField autoscroll to just above keyboard, even if textfield is fully visible

    I have a scrollview full of textfields almost 20 textfields. Now i follow below steps to reproduce this issue:

    1.) Scroll down to 20th textfield and tap on it it will open keyboard 2.) Now 12th textfield is at top and is visible, now if i tap on 12th textfield it automatically scrolls down to position just above keyboard which leads to a bad user experience.

    If a textfield is already in visible area why it needs to be repositioned or scrolled.

    I have also attached snapshots for your reference.

    1 2

    Bug Help Wanted 
    opened by sw-tt-harishmistry 25
  • Swift Compiler Error - Swift 4 and Xcode 9

    Swift Compiler Error - Swift 4 and Xcode 9

    I am attempting to use IQKeyboardManagerSwift for the first time.

    Running Xcode 9 with Swift 4

    I downloaded the IQKeyboardManager-swift4 version and brought it into my app (drag and drop). There were no errors with the first build attempt, but when I add the following line of code to AppDelegate:

    IQKeyboardManager.sharedManager().enable = true

    I get the following error:

    Use of unresolved identifier 'IQKeyboardManager'

    If I attempt to import the framework as follows:

    import IQKeyboardManagerSwift

    I get the following error:

    No such module 'IQKeyboardManagerSwift'

    I have not seen other mentions of this error

    Either way, I get errors and cannot proceed. screen shot 2017-10-13 at 12 57 26 pm

    opened by rouviere 23
  • Text hides behind keyboard on

    Text hides behind keyboard on "Return" press or Paste from clipboard

    Hi,

    I'm trying to implement this with a very dynamic view - I have a UITableView which has TextView's of resizable height.

    When I add text to the textview, everything works as expected. But when I press "return" or when I paste text from the clipboard to the textviews, it does not adjust with the keyboard.

    I tried a few workarounds, and even made adjustFrame() a public function, calling it whenever there was a return press, or a paste, but it didn't seem to work.

    Kindly lead me in the right direction of how to handle this with your library. Cheers!

    (Using Swift btw)

    Invalid 
    opened by PuneetKohli 23
  • Status bar disappears in iOS 11

    Status bar disappears in iOS 11

    Hello,

    The following issue only happens on iOS 11 and on both simulator and real devices.

    When the keyboard comes up everything is fine, but when I tap done the keyboard lowers and I have no status bar left and all components on that view are moved up. The next time the keyboard rises and lowers the status bar is back. The missing status bar happens ever other raise and lower of the keyboard. Below are some screenshots that help relay the issue, the black marks are my vertical constraints that connect the bottom and top of the view. The TextView at the bottom doesn't have a height constraint so on smaller devices it shrinks

    demo 2 demo1

    opened by jaymathew 22
  • App Rejected: uses or references the non-public APIs

    App Rejected: uses or references the non-public APIs

    My Application uses IQKeyboardManager, which was recently rejected by Apple app store for the below mentioned reason.

    _**Guideline 2.5.1 - Performance - Software Requirements

    Additionally, your app uses or references the following non-public APIs:

    _UIAlertControllerTextField, _UIAlertControllerTextFieldViewController, _UIQueuingScrollView, UIAlertSheetTextField, UISearchBarTextField, UITableViewWrapperView, UIToolbarButton, UIToolbarTextButton

    The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.**_

    Is there a way by which I could upload my application using IQKeyboardManager to app store? Kindly guide me through any other steps that may help me for resolving this issue.

    Bug 
    opened by firozkhan09 22
  • Frame not moving correctly - swift 2.0

    Frame not moving correctly - swift 2.0

    Hi,

    Just upgraded my project to Swift 2.0, and updated the pod to its latest version and it seems that now the keyboard is hiding the text field.

    file 25-09-2015 2 58 17 pm

    Podfile line:

    pod 'IQKeyboardManagerSwift'
    

    Any idea why? It used to work before the update

    Invalid iOS Bug/Limitation 
    opened by odedharth 22
  • Crash on build with release mode at device and simulator

    Crash on build with release mode at device and simulator

    Here is screenshot screen shot 2014-11-05 at 11 29 44 pm

    Two method call have this issue

    UITableViewCellScrollViewClass      = NSClassFromString("UITableViewCellScrollView")
    EKPlaceholderTextViewClass          = NSClassFromString("EKPlaceholderTextView")
    
    Bug 
    opened by retsohuang 22
  • Bug with UITextView inside UIScrollView with edgesForExtendedLayout = .all

    Bug with UITextView inside UIScrollView with edgesForExtendedLayout = .all

    View Hierarchy:

    UIViewController
      > UINavigationController: FromSheet
          > UIViewController
              |> UIView
              -> UIScrollView
                 -> UITextView
    

    Behavior: RPReplay_Final1673013199

    Workaround:

    UIViewController.edgesForExtendedLayout = []
    
    opened by Lakr233 1
  • Crash error at startup

    Crash error at startup

    When the program starts, it crashes in the method application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool

    error

    opened by a51095 0
  • 'IQKeyboardManager.h' file not found

    'IQKeyboardManager.h' file not found

    Describe the bug after pod install I am trying to build the project. the build fails with 2 errors: 1 error generated. :0: error: failed to emit precompiled header '/Users//Library/Developer/Xcode/DerivedData/customers-bqcsapwamaxzqcaovwildawjgxga/Build/Intermediates.noindex/PrecompiledHeaders/customers-Bridging-Header-swift_3UD1NYAFT0KK3-clang_P8Z3Q0I5KYV9.pch' for bridging header '/Users///ios/customers/customers-Bridging-Header.h' 2 errors generated. 'IQKeyboardManager.h' file not found

    Expected behavior complete build successfully.

    Screenshots Screen Shot 2022-12-27 at 13 43 50 Screen Shot 2022-12-27 at 13 44 50

    Versions

    Xcode: Version 14.1 (14B47b) Mac OS: Monterey 12.5.1 (21G83) MacBook Pro (13-inch, M1, 2020) Library Version: 6.2.1

    Additional context running this inside a react-native project.

    opened by mickykro 0
  • iphone iOS16.0+ SFAppAutoFillPasswordViewController  bug

    iphone iOS16.0+ SFAppAutoFillPasswordViewController bug

    Describe the bug

    Application tried to present modally a view controller <_SFAppAutoFillPasswordViewController: 0x10d41e190> that is already being presented by <UIKeyboardHiddenViewController_Autofill: 0x10d633960>.
    
    Last Exception Backtrace:
    0   CoreFoundation                	0x1ac8e9e88 __exceptionPreprocess + 164 (NSException.m:202)
    1   libobjc.A.dylib               	0x1a5c1f8d8 objc_exception_throw + 60 (objc-exception.mm:356)
    2   UIKitCore                     	0x1aedc4898 -[UIViewController _presentViewController:withAnimationController:completion:] + 4080 (UIViewController.m:0)
    3   UIKitCore                     	0x1aee3a4e4 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke_2 + 56 (UIViewController.m:8979)
    4   UIKitCore                     	0x1aeace564 +[UIView(Animation) performWithoutAnimation:] + 76 (UIView.m:14722)
    5   UIKitCore                     	0x1aedc3860 __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 208 (UIViewController.m:8977)
    6   UIKitCore                     	0x1aede71cc -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:] + 240 (UIViewControllerTransitioning.m:1148)
    7   UIKitCore                     	0x1aed54f58 -[_UIViewControllerTransitionContext _runAlongsideCompletions] + 140 (UIViewControllerTransitioning.m:380)
    8   UIKitCore                     	0x1aed53fe8 -[_UIViewControllerTransitionContext completeTransition:] + 128 (UIViewControllerTransitioning.m:292)
    9   UIKitCore                     	0x1aed55148 -[UITransitionView notifyDidCompleteTransition:] + 180 (UITransitionView.m:280)
    10  UIKitCore                     	0x1aed54d48 -[UITransitionView _didCompleteTransition:] + 828 (UITransitionView.m:249)
    11  UIKitCore                     	0x1afad1334 __UIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK__ + 36 (UIView.m:15066)
    12  UIKitCore                     	0x1aeb6e808 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 636 (UIView.m:15099)
    13  UIKitCore                     	0x1aeb6d764 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 436 (UIView.m:0)
    14  UIKitCore                     	0x1aeb6ce84 -[UIViewAnimationState animationDidStop:finished:] + 196 (UIView.m:2297)
    15  UIKitCore                     	0x1aeb6cf98 -[UIViewAnimationState animationDidStop:finished:] + 472 (UIView.m:2316)
    16  QuartzCore                    	0x1adf80fec CA::Layer::run_animation_callbacks(void*) + 232 (CALayer.mm:7284)
    17  libdispatch.dylib             	0x1b3eb9fdc _dispatch_client_callout + 20 (object.m:560)
    18  libdispatch.dylib             	0x1b3ec87f4 _dispatch_main_queue_drain + 928 (inline_internal.h:2632)
    19  libdispatch.dylib             	0x1b3ec8444 _dispatch_main_queue_callback_4CF + 44 (queue.c:7887)
    20  CoreFoundation                	0x1ac97a6f8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 (CFRunLoop.c:1780)
    21  CoreFoundation                	0x1ac95c058 __CFRunLoopRun + 2036 (CFRunLoop.c:3147)
    22  CoreFoundation                	0x1ac960ed4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3418)
    23  GraphicsServices              	0x1e5c62368 GSEventRunModal + 164 (GSEvent.c:2196)
    24  UIKitCore                     	0x1aee3f3d0 -[UIApplication _run] + 888 (UIApplication.m:3745)
    25  UIKitCore                     	0x1aee3f034 UIApplicationMain + 340 (UIApplication.m:5335)
    26  Lovely                        	0x102f9f6b8 main + 88 (main.m:17)
    27  dyld                          	0x1cafcc960 start + 2528 (dyldMain.cpp:1170)
    

    and UI ViewController

    12-25 16:03:39.833 [ CRLoginVC ] WillAppear
    --
    1012-25 16:03:41.618 [ UIEditingOverlayViewController ] WillAppear
    1112-25 16:03:41.633 [ UISystemKeyboardDockController ] WillAppear
    1212-25 16:03:41.636 [ UICompatibilityInputViewController ] WillAppear
    1312-25 16:03:41.636 [ UICompatibilityInputViewController ] WillAppear
    1412-25 16:03:41.642 [ UICompatibilityInputViewController ] WillAppear
    1512-25 16:03:41.644 [ UISystemKeyboardDockController ] WillAppear
    1612-25 16:03:53.251 [ UIKeyboardHiddenViewController_Autofill ] WillAppear
    1712-25 16:03:53.340 [ UIKeyboardHiddenViewController_Autofill ] WillAppear
    1812-25 16:03:53.495 [ _SFAppAutoFillPasswordViewController ] WillAppear
    1912-25 16:03:53.499 [ UISystemKeyboardDockController ] WillAppear
    2012-25 16:03:53.503 [ SFPasswordPickerRemoteViewController ] WillAppear
    

    To Reproduce Steps to reproduce the behavior:

    1. only iphone found not all iphone ,ipad not fond,
    2. iOS16+ fond
    3. iphone 11 iphone 12 iphone 13 iphone14 fond
    opened by fanxiangyang 2
  • IQKeyboard manager moves view frame out of visible bounds when switching to a textfield outside tableview

    IQKeyboard manager moves view frame out of visible bounds when switching to a textfield outside tableview

    Describe the bug I have few textfields in tableview and one textfield vertically above tableview. When i switch from textfield in tableview to textfield outside of tableview. the whole screen view moves outside of bounds of visible range.

    To Reproduce Steps to reproduce the behavior:

    1. Create a view with a textfield at top of the screen and a tableview below that textfield
    2. Now add few cells with textfield and load them in tableview
    3. when switching between textfields from tableview cells to textfield outside of tableview, ui will face an issue.

    Expected behavior UI should not break when switching between textfields

    Screenshots IMG_1031 IMG_1033

    Versions

    Xcode: 14.1 Mac OS: Ventura 13.0 also reproducible on earlier mac version Simulator/Device: all iOS 15 and iOS 16 versions Simulator/Device Name: Tested with iPhone SE 3rd generation, iphone 12, iphone 13 pro, reproducible on all iphones Library Version: 6.5.8

    opened by ashishpatill 0
Releases(v6.5.0)
  • v6.5.0(Sep 26, 2019)

    Features

    • Added IQ_KEYBOARD_MANAGER_LOAD_METHOD_DISABLE compiler preprocessor to open an option to disable load method

    Improvements

    • Improved handling of third party textField/textView libraries like YYTextView.
    • Improved handling of contentInset setting by considering safeAreaInsets of UIScrollView.

    Bug fixes

    • Fixed IQToolbar constraint violation problems
    • Fixed an issue where searchBar on the navigationBar wrongly manipulating view controller's frame.
    Source code(tar.gz)
    Source code(zip)
  • v6.4.2(Sep 26, 2019)

  • v6.4.1(Sep 26, 2019)

  • v6.4.0(Sep 26, 2019)

    Bug fixes

    • Fixed a compiler issue for C "language dialect" = C99

    Improvements

    • Added couple of compile time validations for Xcode 11, iOS 13
    • DisplayMode Default is renamed to default, I think this will not be a big deal to rename.

    Deprecations and removed

    • Removed support for Xcode 8
    Source code(tar.gz)
    Source code(zip)
  • v6.3.0(Sep 26, 2019)

    Features

    • Added Package.swift for Swift Package Manager.

    Bug fixes

    • Handled a case where Window Size is not equals to Screen Bounds.
    • Fixed an issue where user was not able to set toolbarDoneBarButtonItemText and setTarget to doneBarButton simultaniously.
    • Fixed an issue where keyboard was not preserving distance from textField when UITextField is embedded in UIStackView and UIStackView is embedded inside UIScrollView.

    Improvements

    • Optimized UITableView and UICollectionView scroll handling.
    Source code(tar.gz)
    Source code(zip)
  • v6.2.1(Apr 29, 2019)

    Bug fixes

    • Fixed an issue where setting custom selector for searchBar not working.

    Improvements

    • Fixed compiler warnings.
    • Optimized Objective-C version for swift projects.
    • Optimized Swift version for Objective-C projects.
    Source code(tar.gz)
    Source code(zip)
  • v6.2.0(Apr 29, 2019)

    Bug fixes

    • Fixed an issue with keyboard next image display.

    Improvements

    • Renamed searchBar to textFieldSearchBar due to conflicts from other projects.
    • Added attributedPlaceholder in IQTextView.
    • Multiline support for placeholder in IQTextView.

    Deprecations and removed

    • Removed shouldShowTextFieldPlaceholder in favor of ** shouldShowToolbarPlaceholder**.
    • Removed shouldHidePlaceholderText in favor of shouldHideToolbarPlaceholder.
    • Removed placeholderText in favor of toolbarPlaceholder.
    • Removed drawingPlaceholderText in favor of drawingToolbarPlaceholder.
    • Removed preventShowingBottomBlankSpace since it's no longer used.
    • Removed shouldFixInteractivePopGestureRecognizer since it's internally handled in v6.0.5.
    • Removed canAdjustAdditionalSafeAreaInsets because it's internally handled in v6.0.0.
    Source code(tar.gz)
    Source code(zip)
  • v6.1.1(Apr 29, 2019)

  • v6.1.0(Apr 29, 2019)

  • v6.0.6(Apr 29, 2019)

  • v6.0.5(Apr 29, 2019)

    Bug fixes

    • Added parentIQContainerViewController for the projects which is using side menu kind of layout. Developer have to manually implement some code to make this work.
    • Fixed an issue with the NavigationController popGestureRecognizer, where using this gesture to navigate causing blank space at the bottom.
    • Fixed some position related issues with IQTextView.

    Documentation

    • Added default template when creating new issue.
    Source code(tar.gz)
    Source code(zip)
  • v6.0.4(Jun 15, 2018)

  • v6.0.3(May 10, 2018)

  • v6.0.2(May 9, 2018)

  • v6.0.1(May 10, 2018)

  • v6.0.0(Apr 12, 2018)

    Bug fixes

    • Fixed an issue where textView was going out of the screen of form sheet or page sheet style presentation on iPad.
    • Fixed couple of memory leaks.
    • Fixed animation glitch if constraint are pinned with layout guides or safe area.
    • Fixed an issue where navigation bar moves with textFields.
    • Introduce IQInvocation class to fix some memory leak issues.

    Improvements

    • Core logic changed to handle distance between textField and keyboard. This fixes most of the recent issues automatically.
    • Renamed sharedManager() withshared for swift version.
    • Renamed viewController() method with viewContainingController() due to naming conflict with other third party SDK's.
    • Supported toolbar placeholder text color
    • Added @objc annotation to make swift library available for Objective-C files.
    • Added placeholderTextColor to IQTextView

    Deprecation and removed

    • Deprecated preventShowingBottomBlankSpace, shouldFixInteractivePopGestureRecognizer, canAdjustAdditionalSafeAreaInsets
    Source code(tar.gz)
    Source code(zip)
  • v5.0.8(Mar 17, 2018)

    Bugfixes:

    • Fixed couple of memory leak issues.

    Features:

    • Added shouldResignOnTouchOutsideMode in UITextFieldView category to override resign on touch outside behaviour for particular textField.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.7(Mar 17, 2018)

    Bugfixes:

    • Fixed a deprecated warning about characters.

    Improvements:

    • Improved IQToobar button frame calculations below iOS11.

    Documentation:

    • Updated Update PROPERTIES & FUNCTIONS.md.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.6(Mar 17, 2018)

    Bugfixes:

    • Fixed a compilation issue due to NSAttributedString.

    Improvements:

    • Replaced some Objective-C style API's with Swift style API's.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.5(Mar 17, 2018)

    Improvements:

    • Patched a tweak for appearance proxy where appearance proxy on UIBarButtonItem was also overriding IQBarButtonItem appearance, which shouldn't be intended.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.4(Mar 17, 2018)

    Bugfixes:

    • Fixed a crash issue due to setting tintColor proxy on IQToolbar.

    Improvements:

    • Added canAdjustAdditionalSafeAreaInsets to control whether library is allow to change additionalSafeAreaInsets or not. Default is NO.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.3(Mar 17, 2018)

    Features:

    • Added ignoreSwitchingByNextPrevious for textField/textView to ignore it while finding next/previous textField.

    Improvements:

    • Upgraded demo project with Safe Area layout guide.
    • Improved keyboard/textfield handling with additionalSafeAreaInsets tweak.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.2(Mar 17, 2018)

  • v5.0.1(Mar 17, 2018)

  • v5.0.0(Mar 17, 2018)

    Bugfixes:

    • Fixed an issue where custom bar button actions wasn't not passing UITextField/UITextView object to method.

    Features:

    • Added shouldIgnoreScrollingAdjustment property in UIScrollView category to prevent scrollView to scroll to adjust textField position. This will be useful if there are nested UIScrollView are having and we should like to scroll an specific one to autoscroll to correct position.

    Improvements:

    • Converted project to support swift4, with backward compatibility of swift3.2 and swift 3.0.
    • Migrated from #import statements to @import.

    Deprecations and Removed:

    • Removed localizable.strings files from Bundle since it's no longer useful.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.13(Mar 17, 2018)

  • v4.0.12(Mar 17, 2018)

    Bugfixes:

    • Fixed some text alignment issue with IQTextView
    • Fixed an issue where keyboard toolbar wasn't displaying properly with iOS11.
    • Fixed an out of bound index crash happening with swift version.

    Improvements:

    • Renamed topMostController to topMostWindowController due to a swift conflict
    Source code(tar.gz)
    Source code(zip)
  • v4.0.11(Mar 17, 2018)

    Bugfixes:

    • Removed some more references of private API's(We previously added those non-public API's for workarounds #865).
    • Fixed a text alignment issue with IQTextView (Thanks to @yurihan)
    • Fixed an issue where _kbSize variable wasn't clearing when library is disabled.

    Improvements:

    • Splitted storyboard into multiple storyboard to improve demo performance.
    • Added brief flow diagram for quick understanding.

    Deprecations and Removed:

    • Removed isAskingCanBecomeFirstResponder because this no longer useful now.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.10(Mar 17, 2018)

    Bugfixes:

    • Fixed an issue where Apple rejected apps using libray due to referencing some non-public API's (We previously added those non-public API's for workarounds #865).

    Improvements:

    • Added registerAllNotifications & unregisterAllNotifications methods to completely disable library at developer risk

    Deprecations and Removed:

    • Deprecated isAskingCanBecomeFirstResponder because this no longer useful now.
    • Removed shouldHidePreviousNext in favor of previousNextDisplayMode.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.9(Mar 17, 2018)

    Bugfixes:

    • Fixed an issue where enabledDistanceHandlingClasses for a class with enabled=NO configuration wasn't working well.

    Features:

    • Added touchResignedGestureIgnoreClasses property to ignore resigned touches for specific view classes.

    Improvements:

    • Updated to support Swift 3.1.
    • Fixed some warnings about deprecations.

    Documentation:

    • Updated README.md documentation.
    Source code(tar.gz)
    Source code(zip)
Owner
Mohd Iftekhar Qurashi
Everyone has their own strength, weakness and unique skills, that's what make them special.
Mohd Iftekhar Qurashi
IHKeyboardAvoiding is an elegant solution for keeping any UIView visible when the keyboard is being shown - no UIScrollView required!

IHKeyboardAvoiding An elegant solution for keeping any UIView visible when the keyboard is being shown Requirements IHKeyboardAvoiding Version Objecti

Idle Hands Apps 1.4k Dec 14, 2022
Codeless manager to hide keyboard by tapping on views for iOS written in Swift

KeyboardHideManager KeyboardHideManager - codeless manager to hide keyboard by tapping on views for iOS written in Swift. Structure Features Requireme

Bondar Yaroslav 55 Oct 19, 2022
A drop-in universal solution for moving text fields out of the way of the keyboard in iOS

TPKeyboardAvoiding A drop-in universal solution for moving text fields out of the way of the keyboard in iOS. Introduction There are a hundred and one

Michael Tyson 5.8k Dec 26, 2022
iOS utility class allows you to access keyboard view and track keyboard animation.

YYKeyboardManager iOS utility class allows you to access keyboard view and track keyboard animation. (It was used by YYText) Compatibility iPhone / iP

null 480 Nov 17, 2022
KeyboardKit is a Swift library that helps you create custom keyboard extensions for iOS and ipadOS.

KeyboardKit is a Swift library that helps you create custom keyboard extensions for iOS and ipadOS.

KeyboardKit 900 Jan 9, 2023
Objective-C library for tracking keyboard in iOS apps.

NgKeyboardTracker Objective-c library for tracking keyboard in iOS apps. Adding to your project If you are using CocoaPods, add to your Podfile: pod '

Meiwin Fu 808 Nov 17, 2022
A simple keyboard to use with numbers and, optionally, a decimal point.

MMNumberKeyboard A simple keyboard to use with numbers and, optionally, a decimal point. Installation From CocoaPods CocoaPods is a dependency manager

Matías Martínez 957 Nov 17, 2022
⌨️A Combine-based way to observe and adjust for Keyboard notifications in SwiftUI

⌨️ Keyboard Observing A Combine-based solution for observing and avoiding the keyboard in SwiftUI. Table of Contents About Requirements Installation C

Nick Fox 440 Jan 5, 2023
⌨️ Add user-customizable global keyboard shortcuts to your macOS app in minutes

This package lets you add support for user-customizable global keyboard shortcuts to your macOS app in minutes. It's fully sandbox and Mac App Store c

Sindre Sorhus 1.1k Dec 29, 2022
Swift UIKit keyboard manager for iOS apps.

Typist Typist is a small, drop-in Swift UIKit keyboard manager for iOS apps. It helps you manage keyboard's screen presence and behavior without notif

Toto Tvalavadze 1.1k Dec 10, 2022
Suppress mouse & keyboard events on MacOSX. Baby-proof my Mac!

Suppress mouse & keyboard events on MacOSX Catches all events (mouse, keyboard, everything), and either consumes them (locked state) or passes them th

Albert Zeyer 6 Oct 21, 2022
QMK Agent is a macOS menubar application which sends commands to a QMK enabled keyboard

QMKagent QMK Agent is a macOS menubar application which sends commands to a QMK enabled keyboard Features System volume indicator using top row (Esc t

Mike Killewald 4 Apr 24, 2022
Best way to dismiss Keyboard in a View Controller iOS (Swift)

Best way to dismiss Keyboard in a View Controller iOS (Swift) First way: Implement UITextFieldDelegate’s textFieldShouldReturn method and dismiss curr

null 0 Dec 18, 2021
Showing / dismissing keyboard animation in simple UIViewController category.

RSKKeyboardAnimationObserver Easy way to handle iOS keyboard showing/dismissing. Introduction Working with iOS keyboard demands a lot of duplicated co

Ruslan Skorb 45 Jun 9, 2022
For less complicated keyboard event handling.

KeyboardObserver For less complicated keyboard event handling. Features Less complicated keyboard event handling. Do not use Notification , but event

Morita Naoki 163 May 24, 2022
KeyboardMan helps you to make keyboard animation.

KeyboardMan We may need keyboard infomation from keyboard notifications to do animation. However, the approach is complicated and easy to make mistake

null 353 Apr 19, 2022
Emoji Keyboard SDK (iOS)

Makemoji SDK Makemoji is a free emoji keyboard for mobile apps. By installing our keyboard SDK every user of your app will instantly have access to ne

Makemoji 100 Nov 3, 2022
A Chinese keyboard for iOS that helps Chinese language learners remember tones.

ToneBoard ToneBoard is a Chinese keyboard for iOS that requires you to enter the correct tones while typing simplified Chinese with Pinyin. It is avai

Kevin Bell 7 Sep 27, 2022
SwiftyKeyboard: a full customized numeric keyboard for iOS

SwiftyKeyboard Overview SwiftyKeyboard is an iOS customized enhanced keyboard. T

SwiftyKit 2 Jun 30, 2022