我想将特定的 TextField 用于用户只能输入小写字符的 url 条目,但我找不到任何用于此目的的 TextField 修饰符。有什么解决办法吗?
Nic*_*sik 47
TextField 有一个.autocapitalization()
方法。
您可以在没有自定义绑定的情况下使用:
TextField("URL", text: $url)
.keyboardType(.URL)
.autocapitalization(.none)
Run Code Online (Sandbox Code Playgroud)
这意味着用户输入的任何文本都将被 .lowercased()
Cla*_*nas 17
Xcode 13 和 14
SwiftUI - iOS 15.0 和 16.0
从:
.autocapitalization(.none)
到:
.textInputAutocapitalization(.never)
例子:
TextField("Enter URL", text: $url)
.keyboardType(.URL)
.textInputAutocapitalization(.never)
Run Code Online (Sandbox Code Playgroud)
您可以创建自定义绑定并通过它将状态 URL 变量设置为输入的小写版本:
struct ContentView: View {
@State var url: String = ""
var body: some View {
let binding = Binding<String>(get: {
self.url
}, set: {
self.url = $0.lowercased()
})
return VStack {
TextField("Enter URL", text: binding)
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想要的只是在用户按回车键后以小写字符串“结束”,您可以这样做:
@State var txt: String = ""
var body: some View {
TextField("", text: $txt, onEditingChanged: { _ in
self.txt = self.txt.lowercased()
})
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4881 次 |
最近记录: |