SwiftUI submitLabel 서 작동하지 않 TextEditor

0

질문

을 사용하고 싶 .submitLabel 을 변경하"반품"키를 다른 무언가(즉, .done다)하지만 그것이 나타나지 않으로 작업 TextEditor 입력 형태입니다. 그것은 생각입니까?

샘플 코드:

struct ContentView: View {
    @State var text: String = ""

    var body: some View {
        Form {
            TextEditor(text: $text)
                .submitLabel(.search)
        }
    }
}
input swiftui
2021-11-24 00:06:56
1

최고의 응답

1

향후 지원

  • 지원서 추가되었습니다 Xcode13.2beta3,는 아직 사용할 수 없습니다.

일시적으로 수정

그래,그래서 내에 기반 시도 .submitLabel(...) 지 않는 기능으로 TextEditor. 이 가능한 솔루션을 추가 Text(...) 으로 서브뷰를 TextEditor(...) 그러나 그는 매우 jenk 고 나타나지 않는다. 그러나 솔루션을 발견 iOS13 것 기능이 정확히 동일한 방법으로는 TextEditor 작동하는 것으로 나타납하고 그 사용하기 UIViewRepresentable. 다행히도 그것은 매우 쉽게 구현할 수 있습니다. 을 만들이 구조체.

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)
    }
}

다음 사용하는 것으로 볼을 사용하는 것 TextView() 어디를 할당합니다. 이를 효과적으로 당해 UIKit 버전의 스트링,그래서 그 속성이 동일합니다. 당신은 것을 얻을 수 있습니다 그것으로 이 시점에서 혼합 SwiftUI 및 UIKit 속성 및 수정이 있습니다.

    TextView { view in
        view.text = sampleText
        view.returnKeyType = .done
    }
2021-11-25 01:56:48

가 하는 아쉬움이 되 iOS13 솔루션? 나머지 부분의 프로젝트를 대상으로 iOS15.
John Sorensen

다만"단점은"데 UIViewRepresentable 하지만 그것을 것 같다는 가장 쉬운 솔루션입니다. 당신은 옵션을 사용하는 뷰가 Text(...) 고 사용 @ViewBuilder 를 구축하기로 이동,하지만 나는 느낌을 얻을 너무 많은 노력이 무엇인지에 대한 가치가있다.
xTwisteDx

@xTwisteDx:가 사용하는 이유 UIViewRepresentableContext<Self>Context?
swiftPunk

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................