RichTextKit 0.8.0

RichTextKit 0.8.0

Daniel Saidi 维护。



  • 作者:
  • Daniel Saidi

RichTextKit Logo

Version Swift 5.6 MIT License Twitter: @danielsaidi Mastodon: @danielsaidi@mastodon.social

关于 RichTextKit

RichTextKit 帮助您在 SwiftUIUIKitAppKit 中查看和编辑丰富的文本。

RichTextKit 包含一个 SwiftUI RichTextEditor,它基于支持文本样式(粗体、斜体、下划线、删除线等)、字体、字号、文本和背景颜色、文本对齐方式、图片等的跨平台 RichTextView 构建。

RichTextKit 由 Oribi 支持,并经其许可发布,并在 OribiWriter 中使用,该应用可在 iOS 和 macOS 上使用。如果您想查看 RichTextKit 在实际应用中的演示,请查看该应用或此仓库中的演示应用。

RichTextKit 支持 iOS 14macOS 11tvOS 14watchOS 7

安装

RichTextKit 可以使用 Swift 包管理器安装

https://github.com/danielsaidi/RichTextKit.git

如果您不希望有外部依赖项,您也可以只需将源代码复制到您的应用程序中。

开始使用

在线文档中有开始使用RichTextKit的指南,可以帮助您开始。

RichTextKit有一个SwiftUI的RichTextEditor,它接受一个文本绑定和一个RichTextContext

struct MyView: View {

    @State
    private var text = NSAttributedString(string: "Type here...")
    
    @StateObject
    var context = RichTextContext()

    var body: some View {
        RichTextEditor(text: $text, context: context) {
            // You can customize the native text view here
        }
    }
}

编辑器使用一个RichTextCoordinator来同步上下文、编辑器和底层平台特定视图之间的更改。

您现在可以使用上下文来更改文本绑定及其字体、字体大小、颜色、对齐方式等。您也可以使用上下文来监视这些属性的更改,例如在移动文本输入光标时。

例如,要显示和更改当前字体大小,您可以使用上下文的RichTextContext/fontSize

Button("Set font size") {
    context.fontSize = 123
}
.onChange(of: context.fontSize) {
    print("The current font size is \(context.fontSize)")
}

这意味着您可以使用纯SwiftUI事件监视并在上下文中对任何属性更改做出响应。

有关更多信息,请参阅在线文档开始使用指南

在UIKit和AppKit中开始使用

在UIKit和AppKit中,您可以直接使用底层RichTextView,而不是UITextViewNSTextView

RichTextView(data: myData, format: .archivedData)  // Using data
RichTextView(string: myString, format: .plainText) // Using a string

RichTextView比原生视图功能更丰富,它桥接了平台特定的API,使得视图在不同平台间表现出更一致的行为。

文档

在线文档提供了更多信息,代码示例等,并允许您概括库的各个部分。

演示应用程序

该演示应用程序允许您在iOS和macOS上探索库。要尝试它,只需打开并运行演示项目。

支持此库

我在业余时间管理我的各种开源项目,对社区提供的任何帮助都表示感谢。

您可以在GitHub Sponsors上赞助此项目,或联系以获取付费支持。

联系

如果您有疑问或想以任何方式做出贡献,请随时联系

许可证

RichTextKit在MIT许可下可用。有关更多信息,请参阅LICENSE文件。