我正在尝试在 SwiftUI 中创建一个编辑器,它可以处理小说级别的字数(50,000-100,000 个单词)。
在最简单的例子中:
struct TextEditingView: View {
@State private var fullText: String = "This is some editable text..."
var body: some View {
TextEditor(text: $fullText)
.foregroundColor(Color.gray)
.font(.custom("HelveticaNeue", size: 13))
.lineSpacing(5)
}
}
在 iPad + 键盘上大约 3000-5000 个单词左右时,我会遇到大量延迟和奇怪的行为(例如视图随机滚动)。我在 macOS 和 iPhone 上也经历过类似的事情。
我尝试搜索诸如
Buffered TextEditor SwiftUI
或 TextEditor paging SwiftUI
之类的术语,但没有取得太大成功。
似乎大多数 swift 文本编辑器的实现都不能真正支持这种文档大小,尽管 Apple 的注释似乎能够处理它。
有人能指出我正确的方向吗?
我也见过这样的东西,当文本是可视区域大小的两倍/三倍时,会出现很多古怪的滚动。自动滚动、跳跃和奇怪的光标放置。
仅使用 SwiftUI 中的标准 TextEditor 小部件