swiftui - swiftui Textfield 将光标移动到每次更改结束
问题描述
如果我将绑定传递给 TextField,那么每当您编辑文本的中心时,光标将在每个字符插入后跳到行尾。这只发生在实际设备 (iPadOS) 上。模拟器不显示此行为。我的解决方法是创建一个状态变量,我使用绑定中的值设置 onAppear 并复制 onEditingChanged。然后我将此状态变量传递给 TextField 而不是直接传递给绑定变量。这打破了唯一的事实来源。
有没有人有更好的解决方案。
- 斯威夫特 5
- iOS 14.7
- XCODE 13 测试版 8 月 10 日
struct infoSheetView: View {
@Binding var cameraURL: String
@State var tmpCameraURL: String = ""
var body: some View {
VStack {
Form{
Section(header: Text("Camera").font(.title)) {
TextField("Camera URL", text: $tmpCameraURL, onEditingChanged: {_ in
cameraURL = tmpCameraURL
}).autocapitalization(.none).disableAutocorrection(true)
}
}.frame(width:400,height:390)
.onAppear() {
tmpCameraURL = cameraURL
}
}
}
解决方案
推荐阅读
- google-bigquery - 我们可以绕过 BigQuery 数据连接器 10000 行的限制吗?
- c++ - Why is a re-constructed map type different from the original one?
- python - DJANGO virtual env unable to import models when running a standalone script
- typescript - 在打字稿中使用量角器引用静态文件进行测试
- spring-boot - Is there a JSON schema or data model for Spring Boot Actuator REST interfaces?
- asp.net-core - ASP.NET Core Windows 身份验证从 UI 网站传递到 API
- java - Android 应用程序在手机上运行,但在平板电脑上无法运行
- javascript - 如何过滤图像表
- visual-studio - 如何在 SSRS 中创建一个子组,将其他组的特定行的值相加?
- javascript - _app.js 类组件 Next.js 中的上下文 API 调度(消费者)