swiftui-texteditor
swiftui-texteditor copied to clipboard
An enhanced version similar to `TextEditor`, aimed at maintaining consistency in its usage across iOS and macOS platforms.
SwiftUI TextEditorPlus
An enhanced version similar to TextEditor, aimed at maintaining consistency in its usage across iOS and macOS platforms.
Installation
You can add MarkdownUI to an Xcode project by adding it as a package dependency.
- From the File menu, select Add Packages…
- Enter https://github.com/jaywcjlove/swiftui-texteditor the Search or Enter Package URL search field
- Link
Markdownto your application target
Or add the following to Package.swift:
.package(url: "https://github.com/jaywcjlove/swiftui-texteditor", from: "1.0.0")
Usage
import TextEditorPlus
struct ContentView: View {
@State var text = """
Hello World
"""
@State var isEditable = true
var body: some View {
TextEditorPlus(text: $text)
.textSetting(isEditable, for: .isEditable)
}
}
Set text weight and size:
TextEditorPlus(text: $text)
.font(.systemFont(ofSize: 24, weight: .regular))
Set editor padding:
TextEditorPlus(text: $text)
.textSetting(23, for: .insetPadding)
Set editor background color:
TextEditorPlus(text: $text)
.textSetting(NSColor.red, for: .backgroundColor)
Set editor text color:
TextEditorPlus(text: $text)
.textSetting(NSColor.red, for: .textColor)
Set editor placeholder string:
TextEditorPlus(text: $text)
//.font(NSFont(name: "pencontrol", size: 12)!)
.font(.systemFont(ofSize: CGFloat(Float(fontSize)!), weight: .regular))
.textSetting("Test placeholder string", for: .placeholderString)
Manipulate attributed strings with attributes such as visual styles, hyperlinks, or accessibility data for portions of the text.
TextEditorPlus(text: $text)
.textSetting(isEditable, for: .isEditable)
.textViewAttributedString(action: { val in
let style = NSMutableParagraphStyle()
style.lineSpacing = 5
style.lineHeightMultiple = 1.2
val.addAttribute(.paragraphStyle, value: style, range: NSRange(location: 0, length: val.length))
return val
})
License
Licensed under the MIT License.