IQKeyboardManager 6.5.19

IQKeyboardManager 6.5.19

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2024年5月

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. 不再需要 #import

IQKeyboardManager 在所有方向上工作,并且与工具栏配合使用。它还有很好的可选功能,允许您自定义文本框的距离,键盘工具栏中上一页、下一页和完成的按钮行为,当用户在表单中导航时播放声音等等。

屏幕截图

IQKeyboardManager Settings

GIF动画

IQKeyboardManager

视频

IQKeyboardManager Demo Video

由@rebeloper提供的教程视频(#1135

@rebeloper 展示了两个如何实现IQKeyboardManager核心功能的视频

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构建框架,并根据需要将适当的框架(IQKeyboardManager.frameworkIQKeyboardManagerSwift.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,因此在所有appleOS类型的项目中都可以使用。它可以与其他工具(如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 requests和issues来贡献。

作者

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