Мне бы хотелось иметь редактируемое текстовое поле с максимальным количеством символов, как в твите, но я не нашел решения в SwiftUI для этого. Кто-нибудь нашел решение этой проблемы?
Вам нужно TextField , вам нужно использовать модель данных, чтобы ограничить максимальное количество символов, как описано в в этом ответе .
Я нашел ответ на ваш вопрос.
Это решение не использует EnvironmentObject.
Пожалуйста, проверьте эту страницу. Как использовать Combine в SwiftUI View
, это мой пример кода.
import SwiftUI import Combine struct ContentView: View { @ObservedObject private var restrictInput = RestrictInput(5) var body: some View { Form { TextField("input text", text: $restrictInput.text) } } } // https://stackoverflow.com/questions/57922766/how-to-use-combine-on-a-swiftui-view class RestrictInput: ObservableObject { @Published var text = "" private var canc: AnyCancellable! init (_ maxLength: Int) { canc = $text .debounce(for: 0.5, scheduler: DispatchQueue.main) .map { String($0.prefix(maxLength)) } .assign(to: \.text, on: self) } deinit { canc.cancel() } }