如何在文本字段 SwiftUI 中用下划线替换空格
How to replace whitespace with underscores in text field SwiftUI
是否可以在用户在文本字段中键入时用另一个字符(在本例中为下划线)替换通过按空格键创建的每个空格?
我发现了一些关于
.replacingOccurrences(of: "", with: "_")
但不知道如何在输入时实时应用它。
这是我使用的带有简单状态变量的文本字段:
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
最简单的版本是用 onChange
监听 txt
的变化:
struct ContentView : View {
@State private var txt = ""
var body: some View {
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
.onChange(of: txt) { newValue in
txt = newValue.replacingOccurrences(of: " ", with: "_")
}
}
}
您可能需要更强大的查找空白的解决方案,因此您可能希望使用此 onChange
方法应用某些解决方案来查找空白字符 here or here。
您还可以像这样显示您的文本字段和文本
var body: some View {
let replace = txt.replacingOccurrences(of: " ", with: "_")
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
Text("Your username: \(replace)")
.padding()
是否可以在用户在文本字段中键入时用另一个字符(在本例中为下划线)替换通过按空格键创建的每个空格?
我发现了一些关于
.replacingOccurrences(of: "", with: "_")
但不知道如何在输入时实时应用它。
这是我使用的带有简单状态变量的文本字段:
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
最简单的版本是用 onChange
监听 txt
的变化:
struct ContentView : View {
@State private var txt = ""
var body: some View {
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
.onChange(of: txt) { newValue in
txt = newValue.replacingOccurrences(of: " ", with: "_")
}
}
}
您可能需要更强大的查找空白的解决方案,因此您可能希望使用此 onChange
方法应用某些解决方案来查找空白字符 here or here。
您还可以像这样显示您的文本字段和文本
var body: some View {
let replace = txt.replacingOccurrences(of: " ", with: "_")
TextField("Enter a username", text: $txt)
.padding()
.disableAutocorrection(true)
.autocapitalization(.none)
Text("Your username: \(replace)")
.padding()