Lorsque vous utilisez le nouveau TextAditor de Swiftui, vous pouvez modifier son contenu directement à l'aide d'un @state. Cependant, je n'ai pas vu un moyen d'ajouter un texte d'espace réservé. Est-ce que c'est faisable en ce moment?
J'ai ajouté un exemple que Apple utilisé dans leur propre application de traduction. Qui semble être une vue d'éditeur de texte à plusieurs lignes qui prend en charge un texte de placement.
Avec une superposition, vous ne pourrez pas permettre de toucher le texte de l'espace réservé à l'utilisateur à écrire dans le TextAditor. Vous feriez mieux travail sur le fond, qui est une vue.
Donc, créez-le, tout en désactivant l'arrière-plan par défaut:
struct PlaceholderBg: View {
let text: String?
init(text:String? = nil) {
UITextView.appearance().backgroundColor = .clear // necessary to remove the default bg
self.text = text
}
var body: some View {
VStack {
HStack{
Text(text!)
Spacer()
}
Spacer()
}
}
}
ensuite, dans votre TextEditor:
TextEditor(text: $yourVariable)
.frame(width: x, y)
.background(yourVariable.isEmpty ? PlaceholderBg(texte: "my placeholder text") : PlaceholderBG(texte:""))