Twitter 文本编辑器

一个独立的、灵活的 API,为 iOS 应用程序提供功能齐全的富文本编辑器。

Twitter Text Editor

它支持安全的文本修改、属性注释(例如语法高亮)、粘贴或拖放处理。

这提供了强大的文本属性更新逻辑、扩展的文本编辑事件,以及在易于使用的基于委托的 API 中的安全文本输入事件处理。 TwitterTextEditor 支持最新版本的 iOS。

要求

Twitter Text Editor 的开发需要 macOS Catalina 10.15 或更高版本以及 Xcode 11.0 或更高版本。目前,Twitter Text Editor 也支持 iOS 11.0 或更高版本以及 macCatalyst 13.0 或更高版本。

用法

如果您熟悉 iOS 开发,则 Twitter Text Editor 的使用非常简单。另请参阅示例以了解实际用法,其中包含 Swift 和 Objective-C 源代码,展示如何使用 Twitter Text Editor。另请参阅Examples/README.md

将 Twitter Text Editor 框架添加到您的项目

将以下行添加到您的 Package.swift 文件中,或使用 Xcode “Add Package Dependency…” 菜单。

// In your `Package.swift`

dependencies: [
    .package(name: "TwitterTextEditor", url: "https://github.com/twitter/TwitterTextEditor", ...),
    ...
],
targets: [
    .target(
        name: ...,
        dependencies: [
            .product(name: "TwitterTextEditor", package: "TwitterTextEditor"),
            ...
        ]
    ),
    ...
]

与其他依赖管理工具一起使用

如果您的项目没有使用 Swift Package Manager,您可以将 Twitter Text Editor 与其他依赖管理工具一起使用。

CocoaPods

要将 Twitter Text Editor 与 CocoaPods 一起使用,请在您的项目中添加以下 TwitterTextEditor.podspec

Pod::Spec.new do |spec|
  spec.name = "TwitterTextEditor"
  spec.version = "1.0.0" # Find the the version from the Git tags
  spec.authors = ""
  spec.summary = "TwitterTextEditor"
  spec.homepage = "https://github.com/twitter/TwitterTextEditor"
  spec.platform = :ios, "11.0"
  spec.source = {
    :git => "https://github.com/twitter/TwitterTextEditor.git", :tag => "#{spec.version}"
  }
  spec.source_files  = "Sources/TwitterTextEditor/*.swift"
end

然后,更新您项目中的 Podfile

pod 'TwitterTextEditor', :podspec => 'path/to/TwitterTextEditor.podspec'

Carthage

要将 Twitter Text Editor 与 Carthage 一起使用,请更新您项目中的 Cartfile

github "twitter/TwitterTextEditor"

然后,运行以下命令。这将创建 Carthage/Build/iOS/TwitterTextEditor.framework

$ carthage update
$ (cd Carthage/Checkouts/TwitterTextEditor && swift package generate-xcodeproj)
$ carthage build --platform iOS

按照说明将框架和 Run Script 阶段添加到您的项目。

文档

请参阅文档

在您的项目中使用 Twitter Text Editor

Twitter Text Editor 提供了一个名为 TextEditorView 的单一视图,它具有类似于 UITextView 的 API,并将大多数功能作为属性或委托回调提供。

像添加其他视图一样将其添加到您的项目中,并使用每个属性进行设置或实现委托回调。

// In your view controller

import TwitterTextEditor

final class MyViewController: UIViewController {
    // ...

    override func viewDidLoad() {
        super.viewDidLoad()
        // ...
        let textEditorView = TextEditorView()
        textEditorView.text = "Meow"
        textEditorView.textAttributesDelegate = self
        // ...
    }

    // ...
}

extension MyViewController: TextEditorViewTextAttributesDelegate {
    func textEditorView(_ textEditorView: TextEditorView,
                        updateAttributedString attributedString: NSAttributedString,
                        completion: @escaping (NSAttributedString?) -> Void)
    {
        // ...
    }
}

贡献

有关详细信息,请参阅 CONTRIBUTING.md

安全问题

请通过 Twitter 的漏洞赏金计划 而不是 GitHub 报告敏感的安全问题。