Search code examples
swiftswiftui

Limit character number in Text Field - Swift


I am struggling to limit the number of characters in a text field to a 2 digit number.

TextField("", text: $tableNumber)
            .keyboardType(.numberPad)

Everything I tried must be outdated for iOS 17/Xcode 15 as previous solutions don't work Any advice appreciated.

Thanks.

======================


Solution

  • I think this simple use case can be achieved with this approach:

    @State private var stableNumber: String = ""
    
    var body: some View {
        TextField("", text: $stableNumber)
            .keyboardType(.numberPad)
            .onChange(of: stableNumber) {
                self.stableNumber = String(self.stableNumber.prefix(2)) //<- here
            }
    }
    

    Output

    enter image description here