Selection Range in SwiftUI

在 SwiftUI 中,没有提供默认的 modifier 来监听 TextViewselectionRange

这对于文本编辑类 app 来说是很致命的,因为无法控制光标的位置,

但是可以从其他的文章中找到一些思路:

寻找 NSView / UIView 的方法来源于:siteline/SwiftUI-Introspect

本文来介绍一种解决方案,可以实现出以下的代码:

1
2
3
4
5
6
7
8
9
10
11
import SwiftUI

struct Example: View {
@State private var selectionRange = NSRange()
@State private var text = ""

var body: some View {
TextEditor(text: $text)
.selectionRange($selectionRange)
}
}
阅读更多
Xcode 13.4 beta 中,SceneBuilder 支持了 buildExpressionbuildLimitedAvailabilitybuildOptional

阅读更多