[SwiftUI macOS 앱] 여러 줄 텍스트 필드

6181 단어 macosSwiftUI

완성 이미지



여러 줄에 걸쳐 쓸 수 있는 텍스트 필드를 만듭니다. SwiftUI 에 준비되어 있다 TextField 그렇다고 한 줄 밖에 쓸 수 없기 때문에.



코드



ContentView.swift
import SwiftUI

struct ContentView: View {
    @State var text = "default text"
    var body: some View {
        VStack {
            MultiTextView(text: $text)
            Text(text)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
        }
    }
}

struct MultiTextView: NSViewRepresentable {
    @Binding var text: String

    func makeNSView(context: Context) -> NSTextView {
        let view = NSTextView()
        view.delegate = context.coordinator
        view.string = text
        return view
    }

    func updateNSView(_ nsView: NSTextView, context: Context) {
        // この行はいらなかった。
        nsView.string = text
    }

    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }

    class Coordinator: NSObject, NSTextViewDelegate {
        var multiTextView: MultiTextView
        init(_ multiTextView: MultiTextView) {
            self.multiTextView = multiTextView
        }
        func textDidChange(_ notification: Notification) {
            guard let text = notification.object as? NSText else {
                return
            }
            self.multiTextView.text = text.string
        }
    }
}

참고:
  • htps //w w. 아 p 코다. 코 m / 슈 ぃ 드디어 xt
  • htps : // 기주 b. 이 m/그런 gP 로오 rg/그런 gp 로에아와 r스ㄴ f 붙어/bㄉ b/d46b372b274f614로 6dcf다 4524638 rゔぃ에w. 수 ft
  • 좋은 웹페이지 즐겨찾기