IQKeyboardManagerSwift 7.1.1

IQKeyboardManagerSwift 7.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2024年7月
SPM支持SPM

Mohd Iftekhar Qurashi维护。




  • 作者
  • Iftekhar Qurashi

Icon

IQKeyboardManager

GitHub license

Build Status

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

主要功能

  1. **无代码**,零行代码

  2. 自动运行

  3. 无需UIScrollView

  4. 无需子类

  5. 无需手动操作

  6. 无需#导入

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

屏幕截图

IQKeyboardManager Settings

GIF动画

IQKeyboardManager

视频

IQKeyboardManager Demo Video

由@rebeloper演示了两种如何在核心处实现的方法的教程视频 (#1135)

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

Youtube Tutorial Playlist

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

警告

  • 如果你计划构建SDK/库/框架并希望使用IQKeyboardManager处理UITextField/UITextView,那么你完全走错了方向。 我绝对不会建议将 IQKeyboardManager 作为 依赖项/添加/打包 任何第三方库。而不是添加 IQKeyboardManager,你应该实施自己的解决方案以实现相同的结果。IQKeyboardManager 完全是为项目设计,以帮助开发者提供便利,它不是为了与任何 第三方库 添加/依赖/打包 而设计的,因为这可能会阻止其他开发者(不是使用IQKeyboardManager并在项目中实施自定义解决方案以处理UITextField/UITextView的开发者)接受使用。
  • 如果 IQKeyboardManager 与其他 第三方库 发生冲突,那么在呈现/消失第三方库UI时,开发者责任 是启用/禁用 IQKeyboardManager。第三方库不负责处理IQKeyboardManager。

要求

Platform iOS

语言 最低iOS目标 最低Xcode版本
IQKeyboardManager Obj-C iOS 8.0 Xcode 9
IQKeyboardManagerSwift Swift iOS 8.0 Xcode 9
示例项目 Xcode 11

支持的Swift版本

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

安装

使用 CocoaPods 安装

CocoaPods

IQKeyboardManager (Objective-C): IQKeyboardManager 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:#9

pod 'IQKeyboardManager' #iOS8 and later

IQKeyboardManager (Swift): IQKeyboardManagerSwift 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:#236

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

pod 'IQKeyboardManagerSwift'

或者,根据 Swift 支持表格从 需求 选择所需版本。

pod 'IQKeyboardManagerSwift', '6.3.0'

在 AppDelegate.swift 中,只需导入 IQKeyboardManagerSwift 框架并启用 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
    }
}

使用 Carthage 安装

Carthage 是一个去中心化的依赖项管理器,它会构建您的依赖项并提供二进制框架。

您可以使用以下命令通过 Homebrew 安装 Carthage:

$ brew update
$ brew install carthage

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

github "hackiftekhar/IQKeyboardManager"

运行 carthage 构建 framework,并将适当的 framework(《IQKeyboardManager.framework 或 IQKeyboardManagerSwift.framework)拖放到您的 Xcode 项目中。请确保只添加一个框架,而不是两个。

使用源代码安装

Github tag

IQKeyboardManager (Objective-C): 只需将 IQKeyboardManager目录从示例项目拖到您的项目中即可。

IQKeyboardManager (Swift): 将 IQKeyboardManagerSwift目录从示例项目拖到您的项目中。

在 AppDelegate.swift 中,只需启用 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
    }
}

使用 Swift 包管理器安装

Swift 包管理器(SPM)是苹果公司的依赖项管理工具。它现在在 Xcode 11 中受到支持,因此它可以用于所有苹果OS类型的项目。它可以与其他工具(如 CocoaPods 和 Carthage)一起使用。

要将 IQKeyboardManager 包安装到您的包中,请向 Package.swift 文件中的依赖项部分添加对 IQKeyboardManager 的引用和目标发布版本。

import PackageDescription

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

通过 Xcode 安装 IQKeyboardManager 包

迁移指南

其他链接

流程图

IQKeyboardManager CFD

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

许可证

在MIT许可证下分发。

贡献

任何贡献都受欢迎!您可以通过GitHub上的pull请求和问题来贡献。

作者

如果您想与我联系,请发送电子邮件至:[email protected]