Coder Social home page Coder Social logo

idewindy / twittertexteditor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from twitter/twittertexteditor

0.0 1.0 0.0 216 KB

A standalone, flexible API that provides a full-featured rich text editor for iOS applications.

License: Apache License 2.0

Ruby 3.76% Makefile 1.65% Swift 94.59%

twittertexteditor's Introduction

Twitter Text Editor

A standalone, flexible API that provides a full featured rich text editor for iOS applications.

Twitter Text Editor

This provides a robust text attribute update logic, extended text editing events, and safe text input event handling in easy delegate based APIs. TwitterTextEditor supports recent versions of iOS.

Requirements

Twitter Text Editor requires macOS Catalina 10.15 or later and Xcode 11.0 and later for the development. At this moment, Twitter Text Editor supports iOS 11.0 and later also macCatalyst 13.0 and later.

Usage

Using Twitter Text Editor is really simple. See also Examples for actual usage, that contains Swift and Objective-C source code to show how to use Twitter Text Editor. See Examples/README.md as well.

Add Twitter Text Editor framework to your project

Add the following lines to your Package.swift or use Xcode “Add Package Dependency…” menu.

// In your `Package.swift`

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

Use with other dependency management tools

In case your project is not using Swift Package Manager, you can use Twitter Text Editor with other dependency management tools.

CocoaPods

To use Twitter Text Editor with CocoaPods, add next TwitterTextEditor.podspec in your project.

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

Then, update Podfile in your project.

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

Carthage

To use Twitter Text Editor with Carthage, update Cartfile in your project.

github "twitter/TwitterTextEditor"

Then, run following commands. This will create Carthage/Build/iOS/TwitterTextEditor.framework.

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

Follow the instructions to add the framework and Run Script phase to your project.

Documentation

See documentation.

Use Twitter Text Editor in your project

Twitter Text Editor provides a single view, TextEditorView that has the similar API as UITextView and provides the most of features as a property or a simple delegate callback.

Add it to your project as like the other views, and setup using each property or implement delegate callbacks.

// 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

See CONTRIBUTING.md for the details.

Security issues

Please report sensitive security issues via Twitter’s bug-bounty program rather than GitHub.

twittertexteditor's People

Contributors

niw avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.