簡體   English   中英

如何禁用文本字段中的空格? - Swift 界面

[英]How do I disable spaces in textfield? - Swift UI

我需要使用 Swift UI 在我的用戶名文本字段中禁用空格輸入。 我怎么會go呢?

當前代碼:

@State private var username = ""

CustomInputField(imageName: "at.circle.fill", placeholderText: "Username", text: $username)

您需要的是創建一個可觀察的 object 並在每次字符串更改時過濾空格。 它應該非常簡單:


import SwiftUI

struct ContentView: View {
    @ObservedObject private var usernameManager = UsernameManager()
    var body: some View {
        VStack(alignment: .trailing, spacing: 0) {
            Text("Username:")
            TextField(
                usernameManager.string,
                text: $usernameManager.string
            )
            .keyboardType(.asciiCapable)
            .multilineTextAlignment(.trailing)
            .onChange(
                of: usernameManager.string,
                perform: usernameManager.editingChanged
            )
        }.padding(.trailing, 25)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

class UsernameManager: ObservableObject {
    @Published var string: String = ""
    func editingChanged(_ string: String) {
        self.string = string.filter(\.isWhitespace.negated)
    }
}

extension Bool {
    var negated: Bool { !self }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM