实战问题
我的应用程序中有一个 url 地址栏,它只加载“www.google.com”而不是“https://www.google.com”格式的 url
@State private var text = ""
@State private var site = "www.google.com/"
TextField("Enter a URL", text: $text, onCommit: {
guard !text.isEmpty else {return}
site = text
})
我希望 Textfield 屏蔽这些字符“https://”,这样每当用户从另一个浏览器复制和粘贴 url 时,他们不必每次都手动删除“https://”。
解决方案
你可以尝试这样的事情:
struct ContentView: View {
@State var txt = ""
var body: some View {
TextField("Enter Url", text: Binding(
get: { txt },
set: { newValue in
if trim(newValue).starts(with: "https://") {
txt = String(trim(newValue).dropFirst(8))
} else {
txt = newValue
}
|