Keyboard-Kit 8.2.0

Keyboard-Kit 8.2.0

Douglas Hill 维护。



  • Douglas Hill

KeyboardKit

为 iPad、iPhone 或 Mac Catalyst 应用程序添加全面硬件键盘控制的最简单方法。

键盘控制是 Mac 应用的标准预期。在 iOS 上也很重要,因为硬件键盘可以提升速度和人体工程学,使 iPad 成为一个更强大的生产力设备。

KeyboardKit 在可用时设计用于与 UIKit 焦点系统集成,并在焦点系统不可用的操作系统版本中提供类似的箭头和制表键导航。

特性

要求

需要 Xcode 14.1 或更高版本。KeyboardKit 支持从 iOS 13 开始的 iPad、iPhone 和 Mac Catalyst(均为缩放和优化版)。不支持 tvOS。

Swift和Objective-C的应用程序都受到支持。由于KeyboardKit是用Swift实现的,因此无法从Objective-C中继承KeyboardKit类。但是,KeyboardKit的所有其他功能都对Objective-C应用程序可用。

安装

使用Swift包管理器

将KeyboardKit作为一个包依赖项添加到现有的Xcode项目中

  1. 从文件菜单中选择Swift Packages › 添加包依赖项…
  2. 在包仓库URL文本框中输入 "https://github.com/douglashill/KeyboardKit"。

直接

  1. 克隆此仓库。
  2. KeyboardKit.xcodeproj 拖放到您的Xcode项目中。
  3. 将KeyboardKit目标作为您的目标的依赖项添加。
  4. KeyboardKit.framework 作为嵌入式框架添加。

Swift包管理器要求将Swift和Objective-C源代码分别整理到模块中。《KeyboardKitObjC》模块在内部由KeyboardKit使用,并且不需要您的应用程序显式导入。

CocoaPods

KeyboardKit在CocoaPods上可用,代码为Keyboard-Kit

如果您发现任何集成问题,请发起一个pull请求

用法

导入框架

import KeyboardKit

UIKit

直接创建或继承 UIKit 类,请使用 KeyboardKit 的子类。所有 KeyboardKit 子类都是通过将 UI 改为 Keyboard 来命名的。例如,使用以下代码替换

class SettingsViewController: UICollectionViewController {
    ...
}

并用以下代码替换

class SettingsViewController: KeyboardCollectionViewController {
    ...
}

或者直接创建 KeyboardKit 的子类

let tabBarController = KeyboardTabBarController()
tabBarController.viewControllers = [
    KeyboardNavigationController(rootViewController: SettingsViewController()),
]

为了接收按键命令,对象必须在 响应链 上。

您可以在 KeyboardKitDemo 应用中查看更多内容,并且每个类都在其 Swift 源文件中包括 API 文档。

SwiftUI

Button 上使用 .keyboardShortcut 修饰符时,访问在 .KeyboardKit 命名空间内语义上定义的 KeyboardShortcut

Button("Save") {
    // Save something here in the button action
}
.keyboardShortcut(.KeyboardKit.save)

这添加了通过按下 ⌘S 触发按钮操作的能力。

定制

公共 API 目前保持最小化,以便组件易于嵌入。如果您想在 KeyboardKit 中定制某些内容,请 提交问题 进行讨论。您还可以考虑直接集成源代码并根据需要修改它。

了解更多

致谢

KeyboardKit 是一个由 Douglas Hill 开发的项目,得到以下贡献者的鼎力相助:贡献者列表。一些概念最初是为 PSPDFKit 开发的,并在 KeyboardKit 中用 Swift 重新实现。我在我的 阅读应用 中使用了 KeyboardKit。

贡献

我很乐意在这项项目中获得帮助。对于小改动,请提出 Pull Request,对于较大的更改,请先在Issues 中讨论您希望看到的内容。

对于新功能不需要测试,但对回归问题应进行自动测试。使用 KeyboardKitTests 进行单元测试(不需要视图或响应链)。使用 KeyboardKitDemoUITests 进行集成测试,这些测试可以在演示应用中重现。这仅限于 Mac Catalyst,因为 iOS 不允许模拟硬件键盘输入。使用 KeyboardKitUITests 进行任何其他测试案例,这可能是大多数情况。

许可证

MIT 许可证 - 查看 License.txt