Icon

LICENSE.md Build Status Platform iOS CocoaPods Github tag

重大更新已发布!

首先,感谢您使用 IQKeyboardManager!

自 2013 年首次发布以来,已经过去了 12 年。该库已经发展了很多,我们从那时起添加了许多新功能。

动机

最近在修复错误时,我意识到 2013 年 Objective-C 版本中只有 2 个文件 IQKeyboardManager.{h,m},而现在 Swift 版本中有 50 多个文件(版本 7.x.x),这使得调试比以前困难得多。此外,某些功能在应用程序中很少使用。

新思路

我意识到某些功能彼此之间没有紧密联系,可以很容易地从库中移出。例如:-

将上述内容移出将使库更轻量级,用户可以根据需要插入/拔出功能。

行动计划执行

我决定将松散耦合的功能移出,并将它们发布到各自的 github 仓库,并根据需要将它们用作依赖项。

简介

在开发 iOS 应用程序时,我们经常遇到 iPhone 键盘向上滑动并覆盖 UITextField/UITextView 的问题。IQKeyboardManager 允许您防止键盘向上滑动并覆盖 UITextField/UITextView 的问题,而无需您编写任何代码或进行任何额外的设置。要使用 IQKeyboardManager,您只需将源文件添加到您的项目中即可。

主要特点

  1. 一行代码

  2. 自动工作

  3. 不再需要 UIScrollView

  4. 不再需要子类

  5. 不再需要手动工作

  6. 不再需要 #imports

IQKeyboardManager 适用于所有方向和工具栏。它还具有很好的可选功能,允许您自定义与文本字段的距离、键盘工具栏中上一个、下一个和完成按钮的行为、在用户浏览表单时播放声音等。

截图

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

GIF 动画

IQKeyboardManager

视频

IQKeyboardManager Demo Video

@rebeloper 的教程视频 (#1135)

@rebeloper 演示了两个关于如何在核心实现 IQKeyboardManager 的视频

Youtube Tutorial Playlist

https://www.youtube.com/playlist?list=PL_csAAO9PQ8aTL87XnueOXi3RpWE2m_8v

警告

要求

语言 最低 iOS 目标 最低 Xcode 版本
IQKeyboardManager Obj-C iOS 13.0 Xcode 13
IQKeyboardManagerSwift Swift iOS 13.0 Xcode 13
演示项目 Xcode 15

Swift 版本支持

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

安装

CocoaPods

IQKeyboardManager (Objective-C): 要安装它,只需将以下行添加到您的 Podfile 中:(#9)

pod 'IQKeyboardManager' #iOS13 and later

IQKeyboardManager (Swift): 要安装它,只需将以下行添加到您的 Podfile 中:(#236)

pod 'IQKeyboardManagerSwift'

或者您可以根据 Requirements 中的 Swift 支持表选择您需要的版本

pod 'IQKeyboardManagerSwift', '8.0.0'

Carthage

要使用 Carthage 将 IQKeyboardMangerIQKeyboardManagerSwift 集成到您的 Xcode 项目中,请将以下行添加到您的 Cartfile

github "hackiftekhar/IQKeyboardManager"

运行 carthage update --use-xcframeworks 以构建框架,并将适当的框架 (IQKeyboardManager.xcframeworkIQKeyboardManagerSwift.xcframework) 拖到您的 Xcode 项目中,根据您的需要。请确保只添加一个框架,而不是两个。

Swift Package Manager (SPM)

要通过 Xcode 安装 IQKeyboardManagerSwift

源代码

IQKeyboardManager (Objective-C): 只需将 IQKeyboardManager 目录从演示项目拖放到您的项目中即可。就这样。

IQKeyboardManager (Swift): 不支持源代码安装(自 7.2.0 以来),因为现在该库依赖于其他一些独立的库。因此,您可能会遇到编译问题。

基本用法

AppDelegate.swift 中,只需 import IQKeyboardManagerSwift 框架并启用 IQKeyboardManager。

import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

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

      IQKeyboardManager.shared.isEnabled = true

      return true
    }
}

迁移指南

其他链接

流程图

IQKeyboardManager CFD

如果您想查看详细的流程图,请查看 详细的流程图

LICENSE

在 MIT 许可证下分发。

贡献

欢迎任何贡献!您可以通过 GitHub 上的 pull request 和 issue 做出贡献。

作者

如果您希望与我联系,请发送电子邮件至:hack.iftekhar@gmail.com