【发布时间】:2020-01-27 21:49:57
【问题描述】:
我正在使用带有绑定字符串的 SwiftUI TextField 将用户的输入更改为电话格式。键入时,格式正在发生,但光标没有移动到文本字段的末尾,它保持在输入时的位置。例如,如果我输入1,texfield 的值(格式化后)将为(1,但光标停留在第一个字符之后,而不是在行尾。
有没有办法将文本字段的光标移动到行尾?
这里是示例代码:
import SwiftUI
import AnyFormatKit
struct ContentView: View {
@State var phoneNumber = ""
let phoneFormatter = DefaultTextFormatter(textPattern: "(###) ###-####")
var body: some View {
let phoneNumberProxy = Binding<String>(
get: {
return (self.phoneFormatter.format(self.phoneNumber) ?? "")
},
set: {
self.phoneNumber = self.phoneFormatter.unformat($0) ?? ""
}
)
return TextField("Phone Number", text: phoneNumberProxy)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】:
-
请用您遇到此问题的代码更新您的帖子,以便更容易找到您的问题的解决方案!
-
@njdeveloper 你找到解决方案了吗?
-
不,我还没有找到解决方案。
-
天哪,我希望在这里找到答案...但是...
-
有什么想法吗?
标签: swiftui