SwiftUI 中的富文本视图
Rich TextView in SwiftUI
我正在尝试在 SwiftUI 中做一个简单的笔记应用程序,我想知道是否有任何库具有简单的富文本视图,允许用户以粗体、斜体、删除线、下划线等书写.
我试过 LEOTextView,但它有很多问题,我想看看是否有 100% SwiftUI 的方法来实现这一点,这样它会更容易与我的项目集成。我也不太了解 UIKit,所以如果它是在 SwiftUI 中制作的,添加更多功能会更容易。
抱歉,如果这是一个愚蠢的问题,请提前致谢。
TL;DR: 我只想要这样的东西
我想这就是起点:
import SwiftUI
// first wrap a UITextView in a UIViewRepresentable
struct TextView: UIViewRepresentable {
@Binding var text: String
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIView(context: Context) -> UITextView {
let textView = UITextView()
textView.delegate = context.coordinator
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.text = text
}
class Coordinator : NSObject, UITextViewDelegate {
var parent: TextView
init(_ uiTextView: TextView) {
self.parent = uiTextView
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
return true
}
func textViewDidChange(_ textView: UITextView) {
print("new text: \(String(describing: textView.text!))")
self.parent.text = textView.text
}
}
}
struct ContentView: View {
@State var text = ""
var body: some View {
TextView(
text: $text)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
SwiftUI 文本编辑器有一个文档齐全的库。它支持 iOS 13.0+ 和 macOS 10.15+,这是它的 link!
HighlightedTextEditor
使用起来也很简单
我正在尝试在 SwiftUI 中做一个简单的笔记应用程序,我想知道是否有任何库具有简单的富文本视图,允许用户以粗体、斜体、删除线、下划线等书写.
我试过 LEOTextView,但它有很多问题,我想看看是否有 100% SwiftUI 的方法来实现这一点,这样它会更容易与我的项目集成。我也不太了解 UIKit,所以如果它是在 SwiftUI 中制作的,添加更多功能会更容易。
抱歉,如果这是一个愚蠢的问题,请提前致谢。
TL;DR: 我只想要这样的东西
我想这就是起点:
import SwiftUI
// first wrap a UITextView in a UIViewRepresentable
struct TextView: UIViewRepresentable {
@Binding var text: String
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIView(context: Context) -> UITextView {
let textView = UITextView()
textView.delegate = context.coordinator
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.text = text
}
class Coordinator : NSObject, UITextViewDelegate {
var parent: TextView
init(_ uiTextView: TextView) {
self.parent = uiTextView
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
return true
}
func textViewDidChange(_ textView: UITextView) {
print("new text: \(String(describing: textView.text!))")
self.parent.text = textView.text
}
}
}
struct ContentView: View {
@State var text = ""
var body: some View {
TextView(
text: $text)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
SwiftUI 文本编辑器有一个文档齐全的库。它支持 iOS 13.0+ 和 macOS 10.15+,这是它的 link! HighlightedTextEditor
使用起来也很简单