Add a prefix to TextField in SwiftUI

后端 未结 5 585
我寻月下人不归
我寻月下人不归 2021-01-22 07:26

I want a ‘+’ Sign in the Textfield which cannot be erased. A user should be able to enter values after it and if he presses backspace it should only erase the v

5条回答
  •  天命终不由人
    2021-01-22 07:56

    In SwiftUI, you may want to use Combine framework to do this. Create an ObservableObject to handle value changes. Example code here:

    import SwiftUI
    import Combine
    
    struct ContentView: View {
    
        class ViewModel: ObservableObject {
            @Published var text = "" {
                didSet {
                    if text.prefix(1) != "+" {
                        text = "+" + text
                    }
                }
            }
        }
    
        @ObservedObject var viewModel = ViewModel()
    
        var body: some View {
            TextField("Placeholder", text:$viewModel.text)
        }
    }
    

提交回复
热议问题