This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bef5a99
commit 2adf1b8
Showing
7 changed files
with
125 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 23 additions & 24 deletions
47
Playgrounds/AttributedText_macOS.playground/Contents.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,57 @@ | ||
# AttributedText | ||
|
||
A description of this package. | ||
AttributedText is a Swift µpackage that provides `NSAttributedString` rendering in SwiftUI by wrapping either an `NSTextView` or a `UITextView` depending on the platform. | ||
|
||
## Supported Platforms | ||
|
||
* macOS 11.0+ | ||
* iOS 14.0+ | ||
* tvOS 14.0+ | ||
|
||
## Usage | ||
```swift | ||
import AttributedText | ||
|
||
struct ContentView: View { | ||
private let attributedString: NSAttributedString = { | ||
let result = NSMutableAttributedString( | ||
string: """ | ||
After the Big Bang | ||
A brief summary of time | ||
Life on earth | ||
10 billion years | ||
You reading this | ||
13.7 billion years | ||
""" | ||
) | ||
|
||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .title1)], range: NSRange(location: 0, length: 18)) | ||
result.addAttributes([.link: URL(string: "https://en.wikipedia.org/wiki/Big_Bang")!], range: NSRange(location: 10, length: 8)) | ||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .body)], range: NSRange(location: 19, length: 23)) | ||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .title2)], range: NSRange(location: 43, length: 13)) | ||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .body)], range: NSRange(location: 57, length: 16)) | ||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .title2)], range: NSRange(location: 74, length: 16)) | ||
result.addAttributes([.font: UIFont.preferredFont(forTextStyle: .body)], range: NSRange(location: 91, length: 18)) | ||
|
||
return result | ||
}() | ||
|
||
var body: some View { | ||
AttributedText(attributedString) | ||
.background(Color.gray.opacity(0.5)) | ||
.accentColor(.purple) | ||
} | ||
} | ||
``` | ||
|
||
 | ||
|
||
An `AttributedText` view takes all the available width and adjusts its height to fit the contents. | ||
|
||
To change the text alignment or line break mode, you need to add a `.paragraphStyle` attribute to the attributed string. | ||
|
||
## Installation | ||
You can add AttributedText to an Xcode project by adding it as a package dependency. | ||
1. From the **File** menu, select **Swift Packages › Add Package Dependency…** | ||
1. Enter `https://github.com/gonzalezreal/AttributedText` into the package repository URL text field | ||
1. Link **AttributedText** to your application target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.