消失在另一个文件中定义的SwiftUI视图上的 "未解决的标识符错误"。

问题描述 投票:1回答:0

我定义了一个SwiftUI视图,名为 TextView 在我的Xcode项目中的一个文件中,它基本上是SwiftUI中的一个UITextView。它基本上是SwiftUI中的一个UITextView。然后在我的 ContentView.swift 文件,我称之为 TextView. 当我这样做时,我得到以下错误。

使用未解决的标识符 "TextView

我已经定义了 TextView所以我不知道为什么会出现这个错误。最奇怪的是,当我构建我的代码时,错误暂时消失了。然后错误很快又回来了。

以下是我的代码。

TextView.swift

import SwiftUI
import UIKit

struct TextView: UIViewRepresentable {
    let placeholder: String
    @State var text: String = ""

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

    func makeUIView(context: Context) -> UITextView {
        let view = UITextView()
        view.isScrollEnabled = true
        view.isEditable = true
        view.isUserInteractionEnabled = true
        view.contentInset = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
        view.font = UIFont.systemFont(ofSize: 30)

        view.text = placeholder
        view.textColor = UIColor.lightGray

        view.layer.borderWidth = 1
        view.layer.borderColor = UIColor.gray.cgColor
        view.layer.cornerRadius = 5

        view.delegate = context.coordinator

        return view
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
        if uiView.textColor != UIColor.lightGray {
            uiView.text = text
        }
    }
}

class Coordinator: NSObject, UITextViewDelegate {
    var control: TextView

    init(_ control: TextView) {
        self.control = control
    }

    func textViewDidChange(_ textView: UITextView) {
        control.text = textView.text
    }

    func textViewDidBeginEditing(_ textView: UITextView) {
        if textView.textColor == UIColor.lightGray {
            textView.text = ""
            textView.textColor = UIColor.black
        }
    }

    func textViewDidEndEditing(_ textView: UITextView) {
        if textView.text.isEmpty {
            textView.text = control.placeholder
            textView.textColor = UIColor.lightGray
        }
    }
}

struct TextViewController_Previews: PreviewProvider {
    static var previews: some View {
        TextView(placeholder: "Placeholder")
    }
}

ContentView.swift

import SwiftUI

struct ContentView: View {
    var body: some View {
        TextView(placeholder: "Hello World!") // my error is showing up here
            .padding()

    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

为什么会出现这种错误,如何解决?感谢任何帮助。

swift file compiler-errors swiftui identifier
© www.soinside.com 2019 - 2024. All rights reserved.