我定义了一个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()
}
}
为什么会出现这种错误,如何解决?感谢任何帮助。