zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SwiftUI Swift 问答之 如何阻止文本字段中的某些字符?

字符 如何 文本 swift SwiftUI 字段 问答 阻止
2023-09-11 14:18:30 时间

实战问题

我的应用程序中有一个 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
                }