Soutien
- Un soutien a été ajouté dans Xcode 13.2 beta 3, qui n'est pas encore disponible.
Correctif Temporaire
Ok, d'après mes tentatives, .submitLabel(...)
ne fonctionne pas avec TextEditor. Il y a une solution possible lorsque vous ajoutez un Text(...)
en tant que sous-vue de la TextEditor(...)
mais c'est extrêmement jenk et je ne le recommande pas. Il y a cependant une solution que j'ai trouvé pour iOS 13 qui semble fonctionner exactement de la même manière que le TextEditor apparaît à travailler, et c'est pour l'utiliser UIViewRepresentable
. Heureusement, il est très facile à mettre en œuvre. Créer cette structure.
struct TextView: UIViewRepresentable {
typealias UIViewType = UITextView
var configuration = { (view: UIViewType) in }
func makeUIView(context: UIViewRepresentableContext<Self>) -> UIViewType {
UIViewType()
}
func updateUIView(_ uiView: UIViewType, context: UIViewRepresentableContext<Self>) {
configuration(uiView)
}
}
Utilisez ensuite ce point de vue comme vous le feriez avec un TextView()
permet d'affecter ses propriétés. C'est effectivement en tirant sur la UIKit
version d'un textView, de sorte que ses propriétés sont les mêmes. Vous pouvez obtenir la fantaisie avec elle à ce point et le mélange SwiftUI et UIKit des propriétés et des modificateurs.
TextView { view in
view.text = sampleText
view.returnKeyType = .done
}