KeyboardKit 7.9.2

KeyboardKit 7.9.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2023年9月
SPM支持 SPM

Daniel Saidi维护。



KeyboardKit Logo

Version Swift 5.6 MIT License Twitter: @@getkeyboardkit Mastodon: @keyboardkit@techhub.social

关于 KeyboardKit

KeyboardKit 帮助您使用 Swift 和 SwiftUI 为 iOS 和 iPadOS 构建自定义键盘扩展。它扩展了原生键盘 API,并为您提供了比其他方式更多的功能。

KeyboardKit 允许您通过几行代码创建类似于原生 iOS 键盘的键盘。这些键盘可以被高度自定义,包括更改输入键、键盘布局、设计、行为等。

KeyboardKit 还允许您使用完全自定义的视图以及库提供的功能。库的大部分功能适用于所有主要的苹果平台。

KeyboardKit 支持 iOS 14macOS 11tvOS 14watchOS 7,尽管在某些平台上某些功能不可用。

安装

可以通过 Swift 包管理器安装 KeyboardKit

https://github.com/KeyboardKit/KeyboardKit.git

您可以将库添加到主应用、键盘扩展以及其他需要它的目标。如果您不喜欢外部依赖,也可以将源代码直接复制到您的应用中。

支持的语言

KeyboardKit 在61个特定键盘的语言环境中进行了本地化(更多信息

🇦🇱 🇦🇪 🇦🇲 🇧🇾 🇧🇬 🇦🇩 🏳️ 🇭🇷 🇨🇿 🇩🇰
🇳🇱 🇧🇪 🇺🇸 🇬🇧 🇺🇸 🇪🇪 🇫🇴 🇵🇭 🇫🇮 🇫🇷
🇧🇪 🇨🇭 🇬🇪 🇩🇪 🇦🇹 🇨🇭 🇬🇷 🇺🇸 🇮🇱 🇭🇺
🇮🇸 🇮🇩 🇮🇪 🇮🇹 🇰🇿 🇹🇯 🇹🇯 🇹🇯 🇱🇻 🇱🇹
🇲🇰 🇲🇾 🇲🇹 🇲🇳 🇳🇴 🇮🇷 🇵🇱 🇵🇹 🇧🇷 🇷🇴
🇷🇺 🇷🇸 🇷🇸 🇸🇰 🇸🇮 🇪🇸 🇰🇪 🇸🇪 🇹🇷 🇺🇦
🇺🇿

特点

KeyboardKit 拥有众多的特性,以帮助您构建令人惊叹且功能强大的键盘

  • 💥 动作 - KeyboardKit 包括各种键盘动作,如字符、表情符号、自定义动作等,并提供了处理方式。
  • 🎨 外观 - KeyboardKit 拥有外观引擎,允许您对键盘进行大量样式设置。
  • 💡 自动完成 - KeyboardKit 可以在用户输入时进行自动完成,并展示建议。
  • 🗯 回调 - KeyboardKit 可以在用户输入时显示输入回调,以及带有次级动作的回调。
  • 🎤 语音输入 - (BETA) KeyboardKit 可以在键盘扩展中执行语音输入。
  • 😊 表情符号 - KeyboardKit 定义了表情符号和分类,以及表情符号键盘。
  • ⌨️ 外部键盘 - KeyboardKit 允许您检测是否连接了外部键盘。
  • 👋 反馈 - KeyboardKit 键盘可以在用户输入时提供触感和振动反馈。
  • 👆 手势 - KeyboardKit 具有特定键盘的手势,您可以在自己的键盘中使用它们。
  • 🔤 输入 - KeyboardKit 支持 字母数字符号以及完全定制的输入集。
  • ⌨️ 键盘 - KeyboardKit支持不同类型的键盘,提供可观察的键盘状态等。
  • 🔣 布局 - KeyboardKit支持为各种设备和地域创建键盘布局。
  • 🌐 本地化- KeyboardKit定义了具有本地化内容和资源的特定键盘地域。
  • 👁 预览 - KeyboardKit包含帮助在SwiftUI中预览键盘视图和组件的工具。
  • ➡️ 代理 - KeyboardKit扩展了UITextDocumentProxy,并使其执行更多功能。
  • 🚏 路由 - KeyboardKit允许将文本路由到主应用之外的其他目的地。
  • ⬅️ RTL - KeyboardKit支持右对齐(从右到左)的地域,如阿拉伯语、波斯语、库尔德语等。
  • ⚙️ 设置 - KeyboardKit包含访问和链接到应用键盘设置的实用工具。

开始使用

在线文档有一个入门指南,可以帮助您开始使用这个库。

安装KeyboardKit后,只需import KeyboardKit,并将您的KeyboardViewController从继承自UIInputViewController改为继承自KeyboardInputViewController

这会给您的控制器提供访问更多功能,例如新的生命周期功能、可观察的属性、键盘服务和更多。

默认的KeyboardInputViewController行为是设置英语SystemKeyboard键盘。实现这一功能所需的代码如下

import KeyboardKit

class KeyboardController: KeyboardInputViewController {}

当键盘视图应该创建或更新时,控制器将调用viewWillSetupKeyboard()。您可以覆盖此函数并调用setup(with:)来定制默认视图或设置一个完全定制的视图。

由于KeyboardKit使用纯SwiftUI,您可以使用任何自定义SwiftUI视图层次结构作为您的键盘视图。

例如,在这里我们用自定义工具栏替换了标准自动完成工具栏

class KeyboardViewController: KeyboardInputViewController {

    func viewWillSetupKeyboard() {
        super.viewWillSetupKeyboard()
        setup { controller in
            VStack(spacing: 0) {
                MyCustomToolbar()
                SystemKeyboard(
                    controller: controller,
                    autocompleteToolbar: .none
                )
            }
        }
    }
}

以及在这里我们使用了一个完全定制的视图,该视图需要特定于应用的控制类型

class KeyboardViewController: KeyboardInputViewController {

    func viewWillSetupKeyboard() {
        super.viewWillSetupKeyboard()
        setup { [unowned self] in
            MyCustomKeyboard(
                controller: self
            )
        }
    }
}

当你使用自定义视图时,非常重要它有一个unowned控制器引用

struct MyCustomKeyboard: View {

    @unowned var controller: KeyboardViewController 

    var body: some View {
        ... 
    }
}

重要提示 当你设置一个自定义视图时,它非常重要要在其中使用[unowned self] in,否则强self引用将导致内存泄漏,同时在视图中还有一个unowned var!如果做不到这一点将导致内存泄漏。

有关更多信息,请参阅在线文档入门指南

文档

在线文档(https://keyboardkit.github.io/KeyboardKit/documentation/keyboardkit/)包含文章、代码示例等,可让您概述该库的各个部分,并了解它们如何相互作用。

在线文档目前针对iOS平台。要为其他平台生成文档,请打开Xcode中的包,选择模拟器,然后运行“产品/构建文档”。

KeyboardKit Pro

KeyboardKit Pro扩展了KeyboardKit,增加了专业特性,如本地化键盘和服务、自动完成、语音输入、表情皮肤、额外视图等。它允许您通过单行代码创建完全本地化的键盘。

演示应用程序

该项目包含一个演示文件夹,其中有一个演示应用程序,可以让您尝试KeyboardKit和KeyboardKit Pro。该应用程序有一个输入文本字段,并展示如何显示键盘扩展的状态,链接到系统设置等。

演示应用程序有5个键盘扩展

  • 英语使用KeyboardKit,并具有具有标准英语区域的SystemKeyboard
  • Unicode使用KeyboardKit,并具有基于Unicode输入键的SystemKeyboard
  • 自定义使用KeyboardKit,并具有自定义按键、布局和外观的SystemKeyboard
  • Pro使用KeyboardKit Pro,并具有所有LRT区域的SystemKeyboard和自动完成等。
  • ProRtl使用KeyboardKit Pro,并具有所有RTL区域的SystemKeyboard和自动完成等。

只需打开并运行演示应用程序,然后在系统设置中启用要尝试的键盘。请注意,要尝试某些功能(如音频和触觉反馈),您可能需要启用完整访问权限。

支持

KeyboardKit 由以下公司信任并赞助

Oribi Icon phonetoroam Icon Vitalis Icon LetterKey Icon Anomaly Software Icon Milo Creative Icon

KeyboardKit 是开源的且完全免费,但您可以在 GitHub Sponsors 赞助此项目,升级到 KeyboardKit Pro联系 我进行自由职业工作、付费支持等。

联系

如果您有任何问题或想以任何方式做出贡献,欢迎联系

许可协议

KeyboardKit 在 MIT 许可协议下提供。更多信息请参见 LICENSE 文件。